Providing a start trigger for a live video broadcast

ABSTRACT

The present disclosure is directed toward systems and methods for providing a start trigger for a live video broadcast. In particular, in some embodiments the systems and methods described herein provide a live video stream received from a broadcaster client device to one or more viewer client devices. Additionally, the systems and methods described herein determine whether an audience satisfies a triggering event to provide the video stream to an audience of viewers. The systems and methods provide content for a wait screen in response to determining that the audience does not satisfy the triggering event, and provide the video stream in a live broadcast in response to determining that the audience does satisfy the triggering event.

BACKGROUND

As a result of the proliferation of smartphones and other computingdevices, individuals have access to many forms of digital communicationthat allow individuals to communicate with large groups of people acrossthe world (e.g., through a social network or other communicationsystem/service). For example, various conventional systems allow anindividual to communicate with an audience of users (e.g., other usersof a communication system/service) by, for example, sharing a post,updating a status, or sharing a picture or video. While manyconventional systems are effective in allowing individuals tocommunicate a message with an audience, these conventional systems havevarious disadvantages. For example, although some conventional systemspermit users to broadcast video content to a plurality of viewers, thesesystems and corresponding broadcast services suffer from a number ofinefficiencies and inconveniences.

To illustrate, some conventional video broadcast systems do noteffectively provide a broadcaster the ability to control a broadcast andmonitor audience participation in the broadcast. From the perspective ofa broadcaster that shares content (e.g., a video broadcast) withinconventional systems, a broadcaster often cannot accurately gauge theinterest of an audience and/or adjust one or more aspects of thebroadcast accordingly. In cases where a broadcaster desires tocommunicate with a large audience of viewers and/or a certain type ofaudience, conventional systems inhibit the broadcaster from controllingthe broadcast in a way to achieve this goal. As a result, conventionalsystems often fail to create a satisfying broadcasting experiencebetween a broadcaster and viewers within an audience.

These and other disadvantages exist with regard to conventionalcommunication systems that permit a user to broadcast live video toother users.

SUMMARY

One or more embodiments described herein provide benefits and solve oneor more of the foregoing or other problems in the art with systems andmethods for providing live video broadcasts (e.g., via a socialnetworking system). In general, the systems and methods provide optionsfor controlling when to begin a live video broadcast. In particular, thedisclosed systems and methods provide options for triggering when tobegin the live video broadcast based on one or more characteristics ofviewers of the live video broadcast. As an example, in some embodimentsthe disclosed system automatically triggers the beginning of a livevideo broadcast based how many viewers have joined an audience for thebroadcast. As another example, in some embodiments the systemautomatically triggers the beginning of a broadcast based on aninfluence (e.g., number of followers) of viewers or a particular viewerthat has joined an audience for the broadcast. While viewers wait for abroadcast to start, the systems and methods disclosed herein providecontent and/or other information relating to the broadcast. For example,in some embodiments the systems and methods provide a digital waitingroom or lobby to engage viewing users while initializing the broadcastof the video stream.

The disclosed system also provides broadcasters and viewers options forcontinuing to consume and/or create content while waiting for abroadcast to start. For example, in some embodiments, the disclosedsystem minimizes a graphical user interface associated with a broadcastthat is waiting to begin while the user views content with a newsfeed orwhile the user posts content to the user's profile within the system.Accordingly, the broadcasting user is able to achieve desired goals withregard to a broadcast's audience, while not wasting time waiting for thebroadcast to begin. Similarly, the viewers are able to continue toconsume and/or create content while waiting for the broadcast to start,thus minimizing any resulting inconvenience caused by the wait.

Additionally, the systems and methods provide audience participationinformation to the broadcasting user. For example, the systems andmethods provide to the broadcasting user, simultaneously with providingthe waiting room content to the viewing users, information regardingviewing users and/or audience capacity to enable the broadcasting userto optimize audience participation. The systems and methods also provideaudience responses and/or reactions to the broadcasting user and/or theviewing users upon broadcasting the video stream.

Furthermore, the systems and methods provide a more satisfying userexperience by increasing user engagement. In particular, the systems andmethods increase user engagement by providing pre-show content toviewing users to maintain an audience in anticipation of a livebroadcast of a video stream by a broadcasting user.

Additional features and advantages of the present application will beset forth in the description which follows, and in part will be obviousfrom the description, or may be learned by the practice of such exampleembodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

This disclosure will describe one or more embodiments of the inventionwith additional specificity and detail by referencing the accompanyingfigures. The following paragraphs briefly describe those figures, inwhich:

FIG. 1 illustrates a schematic diagram of an example live videobroadcast system in accordance with one or more embodiments;

FIGS. 2A-2C illustrate a sequence flow diagram for a live videobroadcasting system in accordance with one or more embodiments;

FIG. 3 illustrates a graphical user interface for initializing a livevideo broadcast in accordance with one or more embodiments;

FIGS. 4A-4C illustrate a series of graphical user interfaces forproviding content to a broadcaster client device in accordance with oneor more embodiments;

FIGS. 5A-5B illustrate a series of graphical user interfaces forstarting a live video broadcast accordance with one or more embodiments;

FIGS. 6A-6C illustrate a series of graphical user interfaces forproviding content for a wait screen on a viewer client device inaccordance with one or more embodiments;

FIG. 7 illustrates a schematic diagram of a live video broadcast systemin accordance with one or more embodiments;

FIG. 8 illustrates a flowchart of a series of acts in a method oftriggering a live video broadcast in accordance with one or moreembodiments;

FIG. 9 illustrates a flowchart of a series of acts in a method ofpresenting a user interface for triggering a live video broadcast inaccordance with one or more embodiments;

FIG. 10 illustrates a block diagram of an exemplary computing device inaccordance with one or more embodiments;

FIG. 11 illustrates an example social network system in accordance withone or more embodiments; and

FIG. 12 illustrates a social graph in accordance with one or moreembodiments.

DETAILED DESCRIPTION

One or more embodiments described herein provide benefits and solve oneor more of the foregoing or other problems in the art with a live videobroadcast system that provides a start trigger for a live videobroadcast. For example, in some embodiments, the system receives arequest to begin a live video broadcast from a broadcaster client device(e.g., a mobile device associated with a broadcaster or broadcastinguser). Additionally, the system receives a video stream for the livevideo broadcast from the broadcaster client device and provides anotification to a number of viewer client devices (e.g., mobile devicesassociated with viewers or viewing users) that the broadcaster hasinitiated a live video broadcast. Based on requests from viewers by wayof viewing client devices, the system adds viewers to an audience forthe live video broadcast. The system determines whether the audiencesatisfies a triggering event to begin broadcasting the video streamreceived from the broadcaster client device. Depending on whether theaudience does or does not satisfy the triggering event, the systemdetermines whether to begin the broadcast (e.g., to begin providing thevideo stream to the viewer client devices).

In one or more embodiments, the system provides a broadcaster theability to capture live video on a mobile device (e.g., a smartphone,tablet, etc.) and broadcast the captured video to viewers (e.g., friendsor followers). For example, a social networking system, by way of asocial networking application on a broadcaster client device, receiveslive video captured by the broadcaster client device as a video stream.In addition, the social networking system, by way of the socialnetworking application on one or more viewer client devices, provides(e.g., broadcasts) the video stream as a live video broadcast to one ormore viewers associated with the viewer client devices.

In some embodiments, the system receives a request to begin a live videobroadcast from a broadcaster client device. In these or otherembodiments, a broadcaster using an application on a mobile deviceselects an option within the application to capture and broadcast a livevideo stream by way of a camera on the mobile device. The live videobroadcast system receives the request (e.g., as indicated by thebroadcaster selecting the option to broadcast or “go live”) from thebroadcaster client device.

The live video broadcast system further receives the live video streamfrom the broadcaster client device. In other words, as the broadcastercaptures video using his or her mobile device, the mobile devicetransmits the captured video to the live video broadcast system. Thelive video broadcast system thereby receives the captured video as avideo stream available for broadcast to viewer client devices.

In the same or other embodiments, the live video broadcast systemprovides a notification that the broadcaster has initiated a live videobroadcast to a number of viewer client devices. The live video broadcastsystem provides the notification to inform co-users (e.g., “friends” or“followers” of the broadcaster) that the broadcaster has requested tobegin broadcasting a live video stream.

The viewers choose to join an audience for the live video broadcast fromwithin the social networking application on the viewer client devices.For example, in some embodiments the viewers select an option (e.g., alink or button) to view the live video broadcast originating at thebroadcaster client device. The live video broadcast system adds viewersto an audience for the live video broadcast based on the requests by theviewers to view the live video broadcast.

In the same or alternative embodiments, the live video broadcast systemdetermines whether the audience satisfies a triggering event associatedwith the live video broadcast. In other words, the live video broadcastsystem determines whether the audience causes a triggering event tooccur, to which the system responds by beginning the broadcast andproviding the live video stream to the viewer client devices.

As used herein, a triggering event is an event, occurrence, criterion,requirement, or other trigger that signifies when to begin a live videobroadcast. For example, in some embodiments a triggering event is arequirement that must be satisfied before the system will beginbroadcasting the video stream received from the broadcaster clientdevice to the audience of viewer client devices. In other embodiments,the triggering event is an occurrence of a particular event orhappenstance that, when detected, signals the system to broadcast thevideo stream received from the broadcaster client device to the viewerclient devices. For example, in some embodiments the triggering event isa threshold audience size, where, upon a threshold number of viewersjoining (e.g., being added to) the audience, the triggering event issatisfied. As another example, in other embodiments the triggering eventis a determination that a particular user has joined the audience,where, upon that particular user joining the audience, the triggeringevent is satisfied. In still other embodiments, the triggering event isa timer, the expiration of which causes the live video broadcast systemto broadcast the video stream. In yet other embodiments, the triggeringevent is a detection of a broadcaster selecting a broadcast option(e.g., “go live now” or “broadcast anyway”). In these embodiments, thelive video broadcast system treats the detected selection of the optionas a sort of override and thereby broadcasts the video stream regardlessof other triggering events being satisfied. In yet further embodiments,the triggering event is some combination of conditions or events, suchas a combination of two or more of the example events mentioned above.

In some embodiments, the system determines that the triggering event issatisfied or that the triggering event has occurred (e.g., that enoughpeople have joined the audience to meet a threshold number). In otherwords, the system determines that the audience satisfies the triggeringevent. In any event, the live video broadcast system, in response todetermining that the audience satisfies the triggering event, broadcaststhe video stream captured by the broadcaster client device to theaudience of viewer client devices that requested to view the videostream.

In the same or other embodiments, the live video broadcast systemdetermines that the triggering event did not occur or has not yetoccurred, or that the audience does not satisfy the necessary conditionsto result in triggering the broadcast of the live video stream (e.g.,the audience is still too small to meet the threshold number). In someembodiments, the system, in response to determining that the audiencedoes not satisfy the triggering event, refrains from beginning the livevideo broadcast to the viewers (e.g., to the viewer client devices ofthe viewers in the audience). More detail is provided hereafterregarding the triggering event and how the audience may or may notsatisfy the triggering event.

Accordingly, the live video broadcast system described herein providesbroadcasters the ability to more effectively gather an audience. Forexample, in some embodiments the live video broadcast system provides avirtual waiting room or lobby (e.g., a wait screen) complete withcontent associated with the broadcaster presented to the viewers whilethe viewers wait for the broadcast to begin. Thus, the live videobroadcast system engages viewers and retains a larger portion ofviewership by providing content while the viewers wait for the broadcastof the live video stream to begin. This prevents problems with losingviewers who do not otherwise want to wait in dead space for thebroadcast to begin.

Additionally, the live video broadcast system described herein enablesbroadcasters to more accurately gauge interest and participation of anaudience. For instance, the live video broadcast system described hereinprovides means whereby users of the live video broadcast system (e.g., abroadcaster and one or more viewers) can communicate with each other(e.g., via a comment section) before the start of the live videobroadcast. In this way, the live video broadcast system enables abroadcaster to monitor comments posted by viewers while the viewers arewaiting for the video stream to begin broadcasting as well as during thebroadcast of the video stream. The broadcaster can effectively gatherinformation about audience opinion and attitude toward the upcomingbroadcast as well an interact with audience members before the broadcaststarts.

As a result of solving the above-described problems, the live videobroadcast system described herein provides a more satisfying userexperience by increasing user engagement. To elaborate, the live videobroadcast system described herein facilitates an increased sense ofengagement from one viewer to another and between the broadcaster andthe viewers. Thus, the live video broadcast system creates an experiencewhereby viewers feel more personally invested in the broadcast throughthe broadcaster-audience relationship. As a result, the live videobroadcast system creates a more satisfying shared experience between abroadcaster and viewers within an audience by increasing userengagement.

In addition to more accurately gauging audience participation andproviding a more satisfying user experience, the live video broadcastsystem described herein exhibits superior performance to conventionalsystems. That is to say, the live video broadcast system is faster thanconventional systems because the live video broadcast system describedherein utilizes a start trigger to initiate streaming of a live videobroadcast. In this way, the live video broadcast system described hereinbroadcasts uniformly to a gathered audience that satisfies a triggeringevent. By contrast, conventional system broadcasts are canceled andrestarted by broadcasters and joined and left by viewers much morefrequently. Accordingly, the live video broadcast system describedherein is computationally less expensive and more efficient thanconventional systems.

The live video broadcast system described herein further consumes lessmemory than conventional systems. By utilizing a triggering event, thelive video broadcast system described herein more effectively gathers anaudience than do conventional systems, and therefore the live videobroadcast system described herein is not canceled and restarted due tounsatisfactory audience sizes as in conventional systems. Furthermore,unlike conventional systems, the live video broadcast system describedherein more efficiently adds viewers to an audience while waiting forthe broadcast to begin. Rather than inserting a viewer into an ongoingvideo stream as in conventional systems, the live video broadcast systemaccumulates viewers before broadcasting the live stream and thereby moreeasily adds viewers to an audience and broadcasts to all audiencemembers uniformly (e.g., at substantially the same time). Thus, the livevideo broadcast system is not only faster than conventional systems butalso requires less memory because it is computationally less expensive.

Additional detail will now be provided with regard to the figures. Forexample, FIG. 1 illustrates a schematic diagram of an example live videobroadcast system 100 for implementing the live video broadcast system inaccordance with one or more embodiments. An overview of the live videobroadcast system 100 is described in relation to FIG. 1. Thereafter, amore detailed description of the components and processes of the livevideo broadcast system 100 is provided in relation to the subsequentfigures.

As illustrated by FIG. 1, in one or more embodiments, the live videobroadcast system 100 includes a broadcaster client device 106 associatedwith a broadcaster 110 (e.g., a broadcasting user). The live videobroadcast system 100 also includes one or more viewer client devices 114a-114 n (collectively referred to herein as “viewer client devices 114”)associated with viewers 116 (e.g., viewing users collectively referredto herein as “viewers 116”). As shown in FIG. 1, viewer client device114 a is associated with viewer 116 a and viewer client device 114 n isassociated with viewer 116 n. As further shown in FIG. 1, the viewerclient devices 114 and the broadcaster client device 106 communicatewith server device(s) 104 via network 112. For example, and as FIG. 1illustrates, server device(s) 104 can implement a social networkingsystem 101 and/or one or more services thereof. In one or moreembodiments, the broadcaster client device 106 and the viewer clientdevices 114 may directly communicate with the server device(s) 104,bypassing network 112.

Although FIG. 1 depicts the live video broadcast system 100 implementedacross a social networking system 101 and multiple user devices runningsocial networking applications 108, it will be understood that this isexemplary and that the live video broadcast system 100 may, in at leastone embodiment, be implemented across a messaging system and userdevices running messaging applications. Likewise, in at least one otherembodiment, the live video broadcast system 100 may be implementedacross any other communications system including user devices runningcommunications applications suitable for broadcasting video streams toco-users (e.g., “friends” and/or “followers).

As further illustrated in FIG. 1, the live video broadcast system 100includes any potential number of viewers 116 associated withcorresponding viewer client devices 114. For discussion purposes, itwill be beneficial to explain the operations and processes of the socialnetworking system 101 with reference to a single viewer client device(e.g., viewer client device 114 a). It will be understood, however, thatthe live video broadcast system 100 communicates with any number ofviewer client devices 114.

The broadcaster client device 106 and the viewer client devices 114 canbe any of various types of computing devices. For example, each of thebroadcaster client device 106 and the viewer client devices 114 may be amobile device such as a smartphone, PDA, tablet, laptop, etc.Additionally or alternatively, the broadcaster client device 106 and theviewer client devices 114 may include a non-mobile device such as adesktop computer or other type of computing device as explained furtherbelow with reference to FIG. 10. In addition, the broadcaster clientdevice 106 and the viewer client devices 114 can include the same typeof functionality, but need not be the same type of device.

As further illustrated in FIG. 1, the broadcaster client device 106 andthe viewer client devices 114 can each include a social networkingapplication 108. In one or more embodiments, the social networkingapplication 108 is installed as software, hardware, or a combination ofsoftware and hardware on the broadcaster client device 106 and viewerclient devices 114. In still other embodiments, the social networkingapplication 108 is implemented across the live video broadcast system100, where all or part of the software or hardware associated with thesocial networking application 108 is run on the broadcaster clientdevice 106, the server device(s) 104, and/or the viewer client devices114.

As will be described in more detail below with reference to FIGS. 3,4A-4C, 5A-5B and 6A-6C, the components of the live video broadcastsystem 100 can provide, alone and/or in combination with the othercomponents, one or more graphical user interfaces (“GUIs”). Inparticular, the social networking application 108 on each of thebroadcaster client device 106 and the viewer client devices 114 candisplay one or more GUIs generated by the broadcaster client device 106,the viewer client devices 114, and/or the social networking system 101.The social networking application 108 can allow a user to interact witha collection of display elements provided within one or more GUIs for avariety of purposes as discussed in detail below with reference tosubsequent figures.

As mentioned above, a broadcaster (e.g., broadcaster 110) can request tobegin a live video broadcast of video to be captured by the broadcasterclient device 106. As used herein, the term “broadcaster” means a userof the social networking system 101 or other communication system thatprovides a video presentation (e.g., a video stream or video broadcast)in near real time for broadcast by the system to an audience of viewingusers or “viewers.” The broadcaster 110 can be a person (e.g.,individual end user) that uses the system and the viewers can beco-users (e.g., friends, followers, or other co-users) of the system. Asused herein, the term “viewer” means a user of the social networkingsystem 101 or other communication system that receives transmission orstreaming of a video broadcast from the broadcaster 110 by way of anassociated viewer client device 114 a-114 n.

As further shown in FIG. 1, the social networking system 101 can be anyelectronic or digital system that facilitates electronic communicationbetween two or more computing devices (e.g., broadcaster device 106 andviewer client device 114 a). For example, the social networking system101 can include a messaging system, video sharing system, or othercommunication system. The details of the social networking system 101are further described below with reference to FIGS. 11 and 12. Infurther embodiments, although various features are described herein withregard to social networking systems, the live video broadcast system 100can be implemented with respect to any suitable networking orcommunication system, such as a messaging system.

As indicated above, the social networking system 101 can communicatewith one or more of the viewer client devices 114 and the broadcasterclient device 106 via the network 112. The network 112 may include oneor more networks and may use one or more communication platforms ortechnologies suitable for transmitting data and/or communicationsignals, as further described with reference to FIGS. 10 and 11.Although FIG. 1 illustrates a particular arrangement of the serverdevice(s) 104, broadcaster device 106, and viewer client devices 114,various additional or alternative arrangements are possible.

Generally speaking, the live video broadcast system 100 facilitates thebroadcast of a video stream from the broadcasting client device 106 toone or more viewer client devices 114. As used herein, the term “videostream” refers to a digital media presentation that originates from aclient device for presentation on one or more additional client devices.For example, a broadcaster client device can provide a video streamcontemporaneously with capturing the streamed video content using acamera on the broadcaster client device (e.g., the video stream is areal-time or near real-time broadcast of captured video content).

Referring now to FIGS. 2A-2C, a sequence diagram of the socialnetworking system (e.g., social networking system 101) is shown. Thesequence includes a number of acts in an example embodiment of thesocial networking system 101. The acts illustrated in FIGS. 2A-2B areperformed, respectively, by the broadcaster client device 106, theserver device(s) 104, and/or the viewer client device 114 a, eachexecuting instructions using one or more processors. As shown, FIG. 2Aincludes the broadcaster client device 106 and the viewer client device114 a each including a social networking application 108, and the serverdevice(s) 104 including the social networking system 101, which canrefer to the same devices, systems, and applications as discussed abovewith respect to FIG. 1. Although FIG. 1 depicts each viewer clientdevice 114 including the same social networking application 108, it willbe understood that, in at least one embodiment, one or more of viewerclient devices 114 and/or broadcaster client device 106 may insteadinclude a different social networking application, a messagingapplication, or other communications application suitable fortransmitting and/or receiving live video streams.

In one or more embodiments, as illustrated in FIG. 2A, the socialnetworking system 101 communicates with the social networkingapplication 108 on each of the broadcaster client device 106 and theviewer client device 114 a. For example, and as shown in act 200, thebroadcaster client device 106 detects a selection to begin a live videobroadcast. In some embodiments, the broadcast client device 106 detectsthe selection to begin the live video broadcast (act 200) by way of thesocial networking application 108. In these or other embodiments, thesocial networking application 108 presents, via a display on thebroadcaster client device 106, a user-selectable option (e.g., a button,link, etc.) to capture and broadcast a live video stream (e.g., a“live,” “go live,” or “start a broadcast” button). More detail regardingthe user interface of the social networking application 108 on thebroadcaster client device 106 is provided below with reference to FIGS.3, 4A-4C, and 5A-5B.

In response to the broadcaster client device 106 detecting a selectionto begin a live video broadcast (e.g., act 200), the social networkingsystem 101 at server device(s) 104 receives the request to begin thelive video broadcast, illustrated by act 202. As discussed above and inmore detail below with reference to FIG. 11, the social networkingsystem 101 communicates via the server device(s) 104 and with thebroadcaster client device 106 to receive various indications andrequests by way of any suitable communication technology. As shown byact 202, the social networking system 101 receives the request to beginthe live video broadcast detected by the broadcaster client device 106in act 200. In one or more embodiments, the social networking system 101receives the request in response to the broadcaster device 106 detectinga selection of a button or link to begin a live video broadcast by thebroadcaster 110.

As shown in FIG. 2A, the broadcaster client device 106 transmits thevideo stream to the server device(s) 104, illustrated in act 204. Insome embodiments, the broadcaster client device 106 transmits the videostream simultaneously or substantially simultaneously as the broadcasterclient device 106 captures the video. In other words, as a capturingdevice (e.g., camera) associated with the broadcaster client device 106captures video, the broadcaster client device 106 contemporaneouslytransmits the captured video over WIFI, cellular networks, or othernetwork connections, to the social networking system 101 at the serverdevice(s) 104. In other embodiments, the broadcaster client device 106transmits the captured video as a video stream after allowing time forprocessing. In these or other embodiments, the broadcaster client device106 reformats, resizes, optimizes, or otherwise processes the capturedvideo before transmitting the video as a video stream to the socialnetworking system 101.

As illustrated in act 206 of FIG. 2A, the social networking system 101receives the video stream for the live video broadcast. In someembodiments, the social networking system 101 receives the video streamand processes for optimization and/or content filtering. In these orother embodiments, the social networking system 101 analyzes the videostream to ensure that the content therein is suitable for transmissionas a live video broadcast to a viewing audience. Additionally oralternatively, the social networking system 101 processes the videosteam to optimize (e.g., reformat, reduce in size, change in resolution,etc.) the video stream for transmission as a live video broadcast toviewer client devices (e.g., viewer client device 114 a).

As further illustrated in FIG. 2A, the social networking system 101provides a notification that the broadcaster 110 has initiated a livevideo broadcast, as shown in act 208. In some embodiments, the socialnetworking system 101 provides the notification that the broadcaster 110has initiated the live video broadcast to viewer client device 114 a. Inthe same or other embodiments, the social networking system 101 providesthe notification only upon approving the content of the video stream asappropriate for transmission and/or optimizing the content (as discussedabove) to viewer client device 114 a. In one or more embodiments, thenotification that the broadcaster 110 has initiated a live videobroadcast is an indication within the social networking application 108on the viewer client device 114 a that the broadcaster 110 is “live.”More detail regarding the user interface and the appearance of thenotification that the broadcaster 110 has initiated a live videobroadcast as shown on viewer client device 114 a is provided below withreference to FIGS. 6A-6C.

As shown by act 210 of FIG. 2A, the social networking system 101receives, from viewer client device 114 a, a request to join theaudience for the live video broadcast. In some embodiments, the viewer116 a selects an option (e.g., a button or link) within the socialnetworking application 108 on the viewer client device 114 a to view thelive video broadcast originating at the broadcaster client device 106.In the same or other embodiments, the option to view the live videobroadcast is an indication within the social networking application 108that the broadcaster 110 is “live,” or that the broadcaster is currentlybroadcasting a live video stream. In these embodiments, the socialnetworking system 101 detects the request as the viewer client device114 a notifies the social networking system 101 that the viewer 116 ahas selected an option to view the live video broadcast associated withthe broadcaster 110. As mentioned, more detail regarding the userinterface of the social networking application 108 on the viewer clientdevice 114 a is provided below with reference to FIGS. 6A-6C.

In response to receiving the request to join the audience for the livevideo broadcast, the social networking system 101 adds the viewer 116 ato the audience for the live video broadcast, as shown by act 212 ofFIG. 2A. In particular, the social networking system 101 creates anaudience of viewers (e.g., viewers 116) who have requested to view thelive video broadcast of the broadcaster 110. The audience includes anumber of viewers who have requested to view the live video broadcast,and the audience increases in size with each new received request toview the live video broadcast. In some embodiments, the socialnetworking system 101 adds each requesting viewer (e.g., viewer 116 a)or viewer client device (e.g., viewer client device 114 a) to theaudience, the audience having a potentially unlimited number of viewers.In other embodiments, the audience size is capped at a maximum number ofviewers that, when reached, results in the social networking system 101refusing to add additional viewers to the audience. For viewers added tothe audience, the social networking system 101 can establish one or morecommunication channels with client devices (e.g., viewer client device114 a) associated with the added viewers in preparation for transmittingthe video stream for the live video broadcast to the users.

In the same or other embodiments, the social networking system 101 addsviewers to the audience in a number of ways. For example, in one or moreembodiments where the live video broadcast has already begun (i.e., thesocial networking system 101 is already broadcasting the video streamreceived from the broadcaster client device 106 to those viewer clientdevices whose viewers have selected to view the live video stream), thesocial networking system 101 adds the viewer 116 a to the audience bybroadcasting the video stream to the viewer client device 114 a startingat the current place in the broadcast, contemporaneous with all otherviewers. In other embodiments where the live video broadcast has not yetbegun, the social networking system 101 creates a virtual waiting roomor virtual lobby to collect all viewers who have requested to view thelive video stream. More detail regarding the virtual waiting room andits contents is provided below with reference to FIGS. 6A-6C.

As shown in FIG. 2A, the social networking system 101 determines whetherthe audience of viewers satisfies a triggering event, illustrated in act214. As described above, a triggering event is an event or occurrencethat, when detected, results in the social networking system 101broadcasting the video stream received from the broadcaster clientdevice 106 (act 206) to the viewer client device 114 a. In someembodiments, determining whether the audience satisfies the triggeringevent includes determining whether the audience has reached a thresholdsize (e.g., accumulated a threshold number of viewers). The thresholdnumber of viewers can be set by the user to as to customize the videobroadcast. In other examples, the social networking system 101 canautomatically set the threshold in accordance with one or morecharacteristics of the user (e.g., influence or number of followers),one or more characteristics of the broadcast (e.g., time of day or week,expected participation during that time, or expected content to bediscussed in the broadcast based on a description received from theuser), and/or one or more characteristics of past broadcasts of the userand/or other users (e.g., average viewership for the user or otherusers). In additional or alternative embodiments, the triggering eventrequires a threshold percentage of viewers (e.g., a percentage of thebroadcaster's total followers, friends, or potential viewers) to bepresent before triggering the start of the broadcast. In otherembodiments, determining whether the audience satisfies the triggeringevent includes determining whether the audience includes a particularperson (e.g., a particular person of influence within the user'sfollowers or friends) or a threshold level of influence (e.g., acomposite level of influence among all the viewers in the audience). Instill other embodiments, even if the audience does not satisfy thetriggering event, the social networking system 101 can begin thebroadcast based on an expiration of a timer or a selection by thebroadcaster 110 to proceed with the broadcast. In yet furtherembodiments, the live video broadcasting system requires satisfaction ofany two or more of the triggering events described herein beforestarting a broadcast.

In any case, when the triggering event is satisfied, the socialnetworking system 101 performs different acts than when the triggeringevent is not satisfied. As illustrated in FIGS. 2B and 2C, the socialnetworking system 101 responds to the triggering event with specificacts (shown in FIG. 2C), and the social networking system 101 respondsto a determination that the triggering event has not been satisfied withdifferent acts (shown in FIG. 2B).

Continuing the sequence flow from FIG. 2A to FIG. 2B, act 216illustrated in FIG. 2B depicts that the social networking system 101determines that the audience does not satisfy the triggering event(e.g., that not enough people have been added to the audience or that aparticular user has not been added to the audience). As described belowwith reference to FIG. 4B, the social networking system 101 provides thebroadcaster client device 106 with a count of the total number ofviewers who have joined the audience. Additionally or alternatively, thesocial networking system 101 provides the broadcaster client device 106with the name or user profile identification of each user that is addedto the audience. In any event, the social networking system 101 notifiesthe broadcaster client device 106 that the audience does not satisfy thetriggering event.

In response to the social networking system 101 determining that theaudience does not satisfy the triggering event (act 216) and notifyingthe broadcaster client device 106 accordingly, the broadcaster clientdevice 106 receives an indication that the audience does not satisfy thetriggering event, as shown in act 218 of FIG. 2B. In some embodiments,the social networking application 108 on the broadcaster client device106 responds to the indication that the audience does not satisfy thetriggering event by providing a notification within a user interface tothe broadcaster 110 that the broadcast has not begun (e.g., that thelive video stream is not yet being broadcast to viewers) because thetriggering event has not been satisfied. Additional detail regarding theuser interface of the social networking system 101 as pertaining to thebroadcaster client device 106 is provided below.

In one or more embodiments, the social networking application 108 on thebroadcaster client device 106 responds to receiving the indication thatthe audience does not satisfy the triggering event by minimizing adisplay window for the video stream, as shown in act 220 of FIG. 2B. Inparticular, in these or other embodiments, the broadcaster client device106 minimizes the video capturing window. The video capturing window isa window within a user interface that displays the camera feed ascaptured by the image capturing device (e.g., camera) of the broadcasterclient device 106. In some embodiments, the video capturing window alsopresents information related to the broadcast of the captured video(e.g., an indication of whether the video stream is currently beingbroadcast, a number of viewers, etc.). As mentioned, additional detailregarding the user interface is provided below with reference tosubsequent figures.

In act 220 as shown in FIG. 2B, the broadcaster client device 106minimizes the display window by reducing the size of the display windowand placing (e.g., docking) the window a corner of the display. In otherembodiments, the broadcaster client device 106 minimizes the displaywindow by collapsing the display window into a menu or border area ofthe display.

As shown by act 222 of FIG. 2B, the social networking system 101refrains from providing the video stream to the viewer client device 114a in response to determining that the audience does not satisfy thetriggering event (act 216). In refraining to provide the video stream,the social networking system 101 may instead notify the viewers (e.g.,viewer 116 a) that the broadcast has not yet begun). In someembodiments, the social networking system 101 may additionally oralternatively provide content for a wait screen or virtual lobby to theviewer client device 114 a, as discussed below in act 230 of FIG. 2B.

As illustrated by act 224 of FIG. 2B, the social networking system 101provides information to the broadcaster client device 106 such as atotal number of viewers that have been added to the audience. In one ormore embodiments, the total number of viewers is a running total thatadjusts on the fly as additional viewers are added to the audience. Inthis way, the social networking system 101 provides information to thebroadcaster 110 so as to enable the broadcaster 110 to gain anunderstanding of overall interest in the broadcaster's video broadcast.

Additionally, as illustrated by act 226 of FIG. 2B, the socialnetworking system 101 provides the identity of each viewer that is addedto the audience. In some embodiments, the social networking system 101provides a notification each time a new viewer is added to the audience,where the notification includes a user identification or profile name ofthe viewer who has been added. As will be discussed in further detailbelow, the broadcaster client device 106 displays the name of each newviewer within a portion or segment of the display of the socialnetworking application 108.

As further illustrated by FIG. 2B, act 228 shows that the socialnetworking system 101 provides content within the social networkingapplication 108 on the broadcaster client device 106 for the broadcaster110 to navigate. In other words, after the broadcaster client device 106minimizes the display window for the video stream (act 220), the socialnetworking system 101 provides content for the broadcaster 110 tocontinue to use the social networking application 108 on the broadcasterclient device 106 as normal. For example, the broadcaster 110 is able tocontinue navigating content within INSTAGRAM or FACEBOOK while thedisplay window for the video stream is minimized.

Additionally, the social networking system 101 provides content for await screen to viewer client device 114 a, as illustrated by act 230 ofFIG. 2B. After the social networking system 101 determines that theaudience does not satisfy the triggering event (act 216), the socialnetworking system provides content for a wait screen to viewer clientdevices (e.g., viewer client device 114 a). In other words, the socialnetworking system 101 creates a virtual lobby or a virtual waiting roomfor viewer 116 a to wait for the broadcast of the video stream to begin.Within the virtual waiting room, the social networking system 101provides introduction content for the viewer 116 a to consume whilewaiting for the broadcast of the video stream. In some cases, the socialnetworking system 101 waits for a triggering event to occur beforebroadcasting the video stream to the viewer client device 114 a (e.g.,the social networking system 101 waits for a threshold number of viewersto be added to the audience). While the social networking system 101waits for the audience to satisfy the triggering event, the socialnetworking system 101 provides pre-show content to the viewer clientdevice 114 a such as a video, image, music, estimated wait time, commentsection, etc. Content for the wait screen can include a pre-show videocreated by the broadcaster 110 or associated with the broadcaster 110.In this way, the social networking system 101 more effectively maintainsviewers within the audience during the time before the broadcast of thevideo stream begins.

As shown by act 232 of FIG. 2B, the broadcaster client device 106, byway of the social networking application 108, enables the broadcaster110 to navigate content within the social networking application 108. Asmentioned, the social networking system 101 provides content within thesocial networking application 108 to the broadcaster client device 106(act 228) so that the broadcaster 110 may continue to use the socialnetworking application 108 while the display window for the video streamis minimized. Once the broadcaster client device 106 has minimized thedisplay window for the video stream (act 220), the broadcaster clientdevice 106 enables the broadcaster 110 to use the social networkingapplication 108 as he or she would ordinarily do to navigate contentprovided by the social networking system 101 and/or to create additionalcontent (e.g., posts, messages, images) to share through the socialnetworking system 101.

Additionally, FIG. 2B illustrates act 234 where the broadcaster clientdevice 106 presents comments from audience members (e.g., viewer 116 a).As described above, the social networking system 101 provides content tothe broadcaster client device 106 during the interim period between theinitialization of the live broadcast and the start of broadcasting thelive video stream to viewer client devices. As part of the content, insome embodiments, the social networking system 101 provides commentsfrom viewers that have been added to the audience. In these or otherembodiments, the viewers in the audience are waiting in the virtuallobby, whereby the viewers can post comments made viewable to thebroadcaster 110 by the social networking system 101. In one or moreembodiments, the comments made by viewers while waiting for thebroadcast of the video stream to begin are not made viewable to otherviewers, while in other embodiments the comments made by viewers aremade viewable to other viewers so as to enable conversation betweenviewers in anticipation of the video stream. More detail regarding thecomment section within the wait screen (e.g., virtual waiting room orvirtual lobby) is provided below.

Continuing the sequence flow from FIG. 2B to FIG. 2C, act 236illustrates that the social networking system 101 determines that theaudience does satisfy the triggering event. In some embodiments, thesocial networking system 101 determines that the audience satisfies thetriggering event (act 236) after first determining that the audiencedoes not satisfy the triggering event (act 216) and waiting for a timeuntil the audience does satisfy the triggering event, as discussedabove. It will be appreciated, however, that the social networkingsystem 101 need not determine that the audience does satisfy thetriggering event (act 236) only after first determining that theaudience does not satisfy the triggering event (act 216). Indeed, insome embodiments the audience may immediately satisfy the triggeringevent, whereupon the social networking system 101 performs the actsdepicted in FIG. 2C immediately following the acts depicted in FIG. 2A(e.g., as illustrated by the “A,” “B,” and “C” links in the figures).Contrariwise, in other embodiments, the social networking system 101performs the acts of FIG. 2A followed by the acts of FIG. 2B and thenthe acts of FIG. 2C, again following an alternate path of the “A,” “B,”and “C” links therein.

In response to the social networking system 101 determining that theaudience satisfies the triggering event (act 236), the broadcasterclient device 106 receives an indication that the audience satisfies thetriggering, as illustrated by act 238 of FIG. 2C. In particular, thebroadcaster client device 106 receives an indication sent by the socialnetworking system 101 that prompts the broadcaster client device 106 toprepare for the beginning of the broadcast and/or to perform certainacts in response to the audience satisfying the triggering event.

For example, as shown in act 240 of FIG. 2C, the broadcaster clientdevice 106 maximizes the display window for the video stream in responseto receiving the indication the audience satisfies the triggering event(act 238). In some embodiments, the broadcaster client device 106maximizes the display window for the video stream by expanding the sizeof the display window associated with the camera feed to take up theentirety of the display area on the broadcaster client device 106. Inother embodiments, the broadcaster client device 106 maximizes thedisplay window by expanding the display window to a size less than theentire display area but more than a minimized screen area. In the sameor alternative embodiments, the broadcaster client device 106 maximizesthe display window by bringing the display window to the foreground ofthe social networking application 108 presented on the display of thebroadcaster client device 106. In any case, the broadcaster clientdevice 106 makes the display window of the video stream the predominantviewing portion within the display of the broadcaster client device 106.

As further shown in FIG. 2C, the social networking system 101 providesor otherwise triggers a countdown to begin broadcasting the videostream, illustrated by act 242. The social networking system 101provides, to both the broadcaster client device 106 and the viewerclient device 114 a, and in response to determining that the audiencesatisfies the triggering event (act 236), a countdown or timer thatsignals the final moments before the broadcast of the live video streambegins. In some embodiments, the social networking system 101 providesthe countdown in the form of a ticker that counts down the seconds untilthe broadcast of the video stream begins (e.g., “3-2-1”). More detail isprovided hereafter regarding the appearance of the countdown in the userinterface of the broadcaster client device 106 and/or the viewer clientdevice 114 a. In any event, the social networking system 101 signals thebeginning of the broadcast of the video stream to both the broadcasterclient device 106 and the viewer client device 114 a in response to theaudience satisfying the triggering event.

As shown by act 244 of FIG. 2C, the broadcaster client device presentscomments from audience members. Similar to act 234 described above withreference to FIG. 2B, the broadcaster client device 106 provides acomments section within the display wherein the broadcaster clientdevice 106 further presents comments submitted by viewers in theaudience. While FIG. 2C shows that the broadcaster client devicepresents comments from audience members as act 244 after the socialnetworking system 101 provides a countdown to begin broadcasting thevideo stream (act 242), and before the broadcaster client devicepresents the countdown to begin broadcasting (act 246), it will beappreciated that the broadcaster client device 106 may present commentsfrom audience members throughout (e.g., at any time within) the sequenceof acts illustrated in FIG. 2C. In other words, the broadcaster clientdevice 106 need not wait for the social networking system 101 to providea countdown before presenting audience comments, and need not be limitedto only presenting comments before presenting the countdown within adisplay of the broadcaster client device 106. Furthermore, at any pointbefore or after the beginning of the broadcast, the broadcaster can turnoff or disable comments for all or one or more of the viewers in theaudience.

As further illustrated by FIG. 2C, act 246 shows that the broadcasterclient device 106 presents a countdown to begin broadcasting the videostream. Once the social networking system 101 provides the countdown(act 242) to the broadcaster client device 106, the broadcaster clientdevice 106 responds by presenting (e.g., displaying) the countdown inthe form of an animation or visual effect (e.g., an animated “3-2-1”countdown) to illustrated to the broadcaster 110 that the videocurrently being captured by the broadcaster client device 106 is goingto be broadcast “live” (e.g., in real-time or near real-time) to theaudience of viewers.

Though not illustrated in FIG. 2C, in at least one embodiment, thesequence of acts may be performed in a different order. For example, insome embodiments, the broadcaster client device 106 transmits the videostream (as in act 204) after the broadcaster client device 106 presentsthe countdown to begin broadcasting the video stream (act 246). In theseembodiments, the broadcaster client device 106 performs acts 218, 220,232, 234, 238, 240, 244, and 246 before transmitting the video stream(act 204). Accordingly, the broadcaster client device 106 presents thecountdown to begin broadcasting (act 246), and the broadcaster clientdevice subsequently transmits the video stream (act 204) to the socialnetworking system 101. Thus, the social networking system 101 receivesthe video stream for the live video broadcast (act 206) and continues toperform subsequent acts (e.g., acts 208, 210, 212, etc.) as shown inFIGS. 2A-2C. Likewise, other acts illustrated in FIGS. 2A-2C may beperformed in an alternative order, according to one or more embodiments.

As used herein, broadcasting the video stream is defined as transmittingthe video stream captured by the broadcaster client device 106 across anetwork (e.g., network 112) to the social networking system 101 atserver device(s) 104, whereupon the social networking system 101 thenretransmits the video stream (as discussed above) to the viewer clientdevice 114 a for viewing by the viewer 116 a.

Still further shown by act 248 in FIG. 2C, the social networking system101 provides, to both the broadcaster client device 106 as well as theviewer client device 114 a, a notification that a live broadcast of thevideo stream has begun. In some embodiments, the social networkingsystem 101 prompts the broadcaster client device 106 to present amessage to the broadcaster 110 that the live broadcast has begun (e.g.,“you are now live” or “streaming live”). In additional or alternativeembodiments, the social networking system 101 also prompts the viewerclient device 114 a to present a notification or message to viewer 116 athat the live broadcast has begun (e.g. “broadcaster 110 is live” or“now viewing live”). In these embodiments, the social networking system101 provides the notification that the live broadcast has begun bysignaling to the broadcaster client device 106 that the socialnetworking system 101 is going to begin transmitting the video streamreceived from the broadcaster client device 106 (act 206) to the viewerclient device 114 a. Additionally, the social networking system 101similarly signals to the viewer client device 114 a.

As shown by act 250 of FIG. 2C, the social networking system 101broadcasts the video stream to the viewer client device 114 a. Asmentioned, the social networking system 101 transmits the video streamthat originated at the broadcaster client device 106 (e.g., the videocaptured by the broadcaster client device 106) as a “live” broadcast tothe viewer client device 114 a. In this way, the viewer 116 a, by way ofviewer client device 114 a, sees a real-time or near real-timerepresentation of the camera feed of the broadcaster client device 106as video is captured by the broadcaster client device 106.

In particular, the social networking system 101 transmits the videostream received from the broadcaster client device 106 in response tothe broadcaster 110 selecting to broadcast the video stream. In someembodiments, the social networking system 101 provides the video streamby communicating with the social networking application 108 on theviewer client device 114 a (e.g., via network 112) and causing thesocial networking application 108 to present the video stream to theviewer 116 a.

FIG. 3 illustrates an example graphical user interface (GUI) on thebroadcaster client device 106. In particular, FIG. 3 illustrates thatthe broadcaster client device 106 includes a broadcaster displayinterface 302 that presents a camera feed 304 along with an option tobegin broadcasting a video stream 306. For example, FIG. 3 illustrates aGUI on the broadcaster client device 106 before a live video streampresentation (e.g., the broadcaster client device 106 has not yetinitiated a broadcast of a video stream).

As used herein, the camera feed 304 (or video capturing feed) includesvideo content that the broadcaster client device 106 is capturing andproviding to the social networking system 101. In one or moreembodiments, the camera feed includes video content that the broadcasterclient device 106 is currently capturing using a camera on thebroadcaster client device 106. Accordingly, in some examples, the camerafeed 304 depicts the video stream on the broadcaster client device 106as the social networking system 101 receives the video stream andtransmits the video stream to an audience (e.g., viewer client devices114).

As briefly mentioned above, FIG. 3 shows that the broadcaster clientdevice 106 causes the broadcaster display interface 302 to present thecamera feed 304 and the option to begin broadcasting a video stream 306.The option to begin broadcasting a video stream 306, for example, can bea button or link whose selection indicates to the broadcaster clientdevice 106 to begin broadcasting the video feed 304 to the socialnetworking system 101. In some embodiments, the option to beginbroadcasting a video stream 306 is overlaid on the camera feed 304. Inthese embodiments, the option to begin broadcasting a video stream 306remains separate from the camera feed 304 and may be manipulated,changed, or modified (e.g., by the viewer broadcaster client device 106or the social networking system 101) independently from the camera feed304.

In other embodiments, the option to begin broadcasting a video stream306 is integrated into the display of the camera feed 304. In theseembodiments, the option to begin broadcasting a video stream 306 isembedded as a part of the presentation of the camera feed 304 on thebroadcaster display interface 302. In these embodiments, the option tobegin broadcasting a video stream 306 is fixed as determined by thesocial networking application 108.

FIGS. 4A-4C illustrate a series of GUIs relating to what is shown on thebroadcaster client device 106 when the audience does not satisfy thetriggering event. As shown in FIGS. 4A-4C, the presentation on thebroadcaster display interface 302 includes various interactive elements.For example, the interactive elements may include buttons, links,widgets, or other user-selectable options presented on the broadcasterclient device 106. It will be appreciated that, in some embodimentsFIGS. 4A-4C are a progression of GUIs as shown on the broadcaster clientdevice 106 throughout the process of triggering a live video broadcast.In particular, as shown in FIG. 4A, the broadcaster display interface302 presents, in conjunction with the camera feed 304, a statusindicator 400, a termination option 402, and a dialogue section 404. Asmentioned above, the broadcaster 110 may select the option to beginbroadcasting a video stream 306 from within the presentation on thebroadcaster display interface 302 (e.g., by a touch input, a voiceinput, a click input, etc.). Additionally, upon detecting the selectionof the option to begin broadcasting a video stream 306, the socialnetworking application 108 presents a new GUI (e.g., as shown by FIG.4A) by changing the presentation on the broadcaster display interface302 to begin informing the broadcaster 110 on the progress being made ingathering an audience sufficient to satisfy the triggering event tocause the social networking system 101 to broadcast (e.g., transmit) thecamera feed 304 to the audience of viewer client devices (e.g., viewerclient device 114 a).

As mentioned, FIG. 4A illustrates a status indicator 400. As shown, thestatus indicator provides a status of the broadcast. In particular, thestatus indicator 400 informs the broadcaster 110 as to whether thebroadcaster 110 is currently broadcasting or not (e.g., whether thebroadcaster 110 is “live”). It will be appreciated that, while thestatus indicator 400 as shown in FIG. 4A indicates that the broadcaster110 is currently “live” (e.g., that the broadcaster client device 106has initiated a broadcast of a video stream), the social networkingsystem 101 has not yet begun transmitting the video stream (e.g., camerafeed 304) to the audience of viewer client devices. Rather, the statusindicator 400 indicates that the broadcaster client device 106 iscurrently transmitting (e.g., broadcasting) the camera feed 304 to thesocial networking system 101 as described above, but since thetriggering event has not yet been satisfied as illustrated in FIG. 4A,the social networking system 101 has not, therefore, relayed thetransmission of the camera feed 304 to the audience of viewer clientdevices.

As further illustrated in FIG. 4A, the broadcaster display interface 302includes termination option 402. The termination option 402 is auser-selectable option whereby the broadcaster 110, upon selecting thetermination option 402, can choose to end the live broadcast at anytime. Upon detecting selection of the termination option 402, thebroadcaster client device 106 stops transmitting the camera feed 304 tothe social networking system 101 and ends the live broadcast.Additionally, the broadcaster client device 106 provides a notificationto the social networking system 101 that the broadcaster 110 hasselected the termination option 402, whereupon the social networkingsystem 101 provides a similar notification to the viewer client device114 a and ceases to transmit the video stream to the viewer clientdevice 114 a.

Also shown in FIG. 4A, broadcaster display interface 302 furtherincludes a dialogue section 404. In some embodiments, the dialoguesection 404 displays information relating to the live broadcast to thebroadcaster 110. For example, in these or other embodiments the dialoguesection 404 presents messages about the triggering event. For instance,as shown in FIG. 4A the dialogue section 404 displays messages such as,“Hang tight while people join!” to indicate that the social networkingsystem 101 is waiting for more viewers to join (e.g., to be added to theaudience) before broadcasting the video stream (e.g., camera feed 304)to the viewer client devices 114. Additionally or alternatively, thedialogue section 404 displays messages such as, “4 people have joined sofar” to indicate to the broadcaster 110 a number of viewers that havebeen added to the audience. As described above, in some embodiments thesocial networking system 101 waits for a threshold number of viewers tobe added to the audience to determine that the triggering event issatisfied before broadcasting the video stream to the viewer clientdevices 114.

As shown in FIG. 4B, the broadcaster display interface 302 includes anaudience size indicator 406 and a status message 408 in conjunction withthe camera feed 304 and dialogue section 404. In particular, theaudience size indicator 406 presents information to the broadcaster 110relating to the size of the audience (e.g., how many viewers have beenadded to the audience at any given point). The audience size indicator406 adjusts with each addition of a new viewer to the audience, alwaysreflecting the total number of viewers in the audience. As shown in FIG.4B the audience has 20 total viewers as indicated by the audience sizeindicator 406.

As further shown in FIG. 4B, the audience of 20 viewers is not enough tosatisfy the triggering event as depicted. As indicated by the statusmessage 408 in the embodiment shown in FIG. 4B, the social networkingsystem 101 is still waiting for more viewers before beginning thebroadcast of the video stream to viewer client devices 114. The statusmessage 408 can reflect the status of the triggering event and/oraudience status to inform the broadcaster 110 as to whether or not thetriggering has been satisfied. In one or more embodiments, thebroadcaster display interface 302 displays the status message 408 as anoverlay on top of the camera feed 304, while in other embodiments thebroadcaster display interface 302 displays the status message 408 withinthe dialogue section 404 so as not obfuscate the presentation of thecamera feed 304.

Looking to FIG. 4C, the broadcaster client device 106 displays abroadcaster application interface 410. In response to the broadcasterclient device 106 receiving an indication that the audience has notsatisfied the triggering event (discussed above), the broadcasterdisplay interface 302 is minimized into the broadcast window 412. Insome embodiments, the broadcaster display interface 302 is minimizedincluding each feature therein (e.g., dialogue section 404, the audiencesize indicator 406, and/or the status message 408), while in otherembodiments the broadcaster display interface 302 is minimized withoutdisplaying the other features therein. In these embodiments, thebroadcaster display interface 302 displays less than all of the featuresshown in FIGS. 4A and 4B, such as the camera feed 304, for example.

As shown in FIG. 4C, the broadcaster client device 106 enables thebroadcaster 110 to navigate through the social networking application108 while the live broadcast is ongoing. As shown in FIG. 4C, forexample, the broadcaster client device 106 transmits the video stream(e.g., camera feed 304) to the social networking system 101 while alsodisplaying the broadcaster application interface 410. However, theaudience has not yet satisfied the triggering event, and the socialnetworking system 101 therefore provides application content to thebroadcaster client device 106 associated with the social networkingapplication 108 and minimizes the broadcaster display interface 302 intothe broadcast window 412. By receiving the application content providedby the social networking system 101, the broadcaster client device 106thereby enables the broadcaster 110 to use the social networkingapplication 108 with normal functionality. While the broadcaster displayinterface 302 is minimized into the broadcast window 412 within thebroadcaster application interface 410, the broadcaster 110 is therebyable to use the social networking application 108 while he or she waitsfor the audience to satisfy the triggering event (thus resulting in thevideo stream to begin for the audience).

As discussed above, when the social networking system 101 determinesthat the audience satisfies the triggering event and notifies thebroadcaster client device 106 accordingly, then the broadcaster clientdevice 106 maximizes the broadcast window 412 within the display. Inthese embodiments, the broadcaster client device expands the broadcastwindow 412 to take up the display area previously used by thebroadcaster application interface 410, to again look like thebroadcaster display interface 302 as shown in FIG. 5A.

FIGS. 5A-5B illustrate a series of GUIs depicting the broadcaster clientdevice 106 when the audience does satisfy the triggering event. As shownin FIG. 5A, the broadcaster display interface 302 is maximized from thebroadcast window 412 of FIG. 4C. In addition, the broadcaster displayinterface 302 includes a start indicator 500, a countdown indicator 502,and a cancel option 504. The display interface also includes the camerafeed 304 as shown in FIG. 4A that is to be broadcast as the video streamprovided to the social networking system 101 and then to the viewerclient device 114 a.

As shown in FIG. 5A, the social networking system 101 determines thatthe audience has satisfied the triggering event and provides a resultantnotification to the broadcaster client device 106 accordingly. Inresponse, the broadcaster client device 106 shown in FIG. 5A maximizesthe broadcaster display interface 302 (e.g., expands the broadcastwindow 412 of FIG. 4C into the broadcaster display interface 302) andpresents, within the broadcaster display interface 302, a startindicator 500 to the broadcaster 110. The start indicator 500 notifiesthe broadcaster 110 that the audience has satisfied the triggering andthat, consequently, the video stream is about to begin broadcasting tothe audience of viewers by way of the viewer client devices 114.

In addition to the start indicator 500, the broadcaster displayinterface 302 further includes a countdown indicator 502. In one or moreembodiments, the countdown indicator 502 displays a series ofdecrementing numbers as the broadcast of the video stream is about tobegin. In the same or different embodiments, the series of numbersreflect the seconds (or other amount of time) remaining until the socialnetworking system 101 begins transmitting the video stream received fromthe broadcaster client device 106 to the viewer client device 114 a. Inother embodiments, the series of numbers displayed within the countdownindicator 502 increments rather than decrements. In still otherembodiments, the countdown indicator 502 is a series of charactersdisplaying a message that the video stream is about to begin, such as“Going live now,” or “Setting up your broadcast.”

Further illustrated by FIG. 5A, the broadcaster display interface 302includes a cancel option 504. As shown, the cancel option 504 isselectable at any time by the broadcaster 110 to terminate the broadcastof the video stream. Upon detecting selection by the broadcaster 110 ofthe cancel option 504, the broadcaster client device 106 stopstransmitting the video stream captured by the broadcaster client device106 to the social networking system 101.

As shown in FIG. 5B, the broadcaster display interface 302 includes theaudience size indicator 406 described above as well as the dialoguesection and a live indicator 506. In particular, the live indicator 506presents a message to the broadcaster 110 that the social networkingsystem 101 has started broadcasting the video stream provided by thebroadcaster client device 106 to the viewer client device 114 a. Assuch, viewer 116 a can then view the camera feed 304 as a video streamon viewer client device 114 a as shown in FIG. 6C and described below.

FIGS. 6A-6C illustrate a series of GUIs on the viewer client device 114a relating to the broadcast of the video stream. Changing perspectivefrom the broadcaster client device 106 to the viewer client device 114 aand looking to FIG. 6A, the viewer client device 114 a presenting aviewer display interface 602 is shown. As illustrated in FIG. 6A, theviewer display interface 602 includes various elements, features, andoptions. For example, the viewer display interface 602 includesbroadcaster indicator 604 and a wait message 606, which in someembodiments includes therein the broadcaster indicator 604. In addition,the viewer display interface 602 also includes a wait time indicator 608and an exit option 610.

As mentioned, and as illustrated in FIG. 6A, the viewer displayinterface 602 includes a broadcaster indicator 604. In some embodiments,the broadcaster indicator 604 is an image, profile photo, or otherpictographic representation of the broadcaster 110 whose live broadcastthe viewer 116 a has selected to view. In additional or alternativeembodiments, the broadcaster indicator 604 is the broadcaster's name orother identifier. In any case, the social networking system 101 providesa broadcaster indicator 604 in one for or another to provideidentification of the broadcaster 110.

In conjunction with the broadcaster indicator 604, the viewer displayinterface 602 includes a wait message 606, as further shown in FIG. 6A.In some embodiments, the wait message 606 displays text such as, forexample, “Steve's broadcast will begin shortly” to indicate to theviewer 116 a that the social networking system 101 has not yet startedbroadcasting the video stream originating at the broadcaster clientdevice 106. The wait message 606 further indicates to the viewer 116 a,by way of viewer client device 114 a, that the viewer 116 a is indeedwaiting for the correct broadcast to begin and that the viewer 116 a hassuccessfully been added to the audience for the live broadcast.

Furthermore, as shown in FIG. 6A, the viewer display interface 602includes a wait time indicator 608. In particular, the wait timeindicator 608 displays a timer (e.g., a countdown timer) indicating howmuch time is remaining until the broadcast of the live video streambegins. For example, in some embodiments the wait time indicator 608displays “3:00” indicating that three minutes are remaining until thestart of the live broadcast. In these or other embodiments, the timerdecreases to zero as the start of the broadcast approaches. It will beappreciated that, in some embodiments, the wait time indicator 608displays an estimated remaining time. In these or other embodiments, thesocial networking system 101 calculates an estimated remaining timebased on a number of factors including, but not limited to, the numberof viewers required to satisfy the triggering event, the rate at whichviewers are added to the audience, the popularity of previous livebroadcasts put on by the broadcaster 110, the average time it takes togather an audience, etc. The social networking system 101 provides theestimated remaining time to the broadcaster client device 106 which thenpresents the time within the viewer display interface 602, as shown inFIG. 6A.

The exit option 610, as also shown in FIG. 6A, is user-selectable andcauses the viewer client device 114 a to leave the audience for the livebroadcast. In other words, once the viewer 116 a selects the exit option610, the viewer client device 114 a sends a notification to the socialnetworking system 101 that the viewer client device 114 a associatedwith viewer 116 a is to be removed from the audience. In response toreceiving the notification, the social networking system 101 removes theviewer client device 114 a from the audience for the live videobroadcast.

As illustrated in FIG. 6B, in some embodiments the viewer displayinterface 602 includes, addition to the wait time indicator 608 and exitoption 610 discussed above, wait screen content 612. In particular, thesocial networking system 101 provides, from a portion of a databaseassociated with the broadcaster 110 (e.g., previously uploaded by thebroadcaster 110), wait screen content 612 to the viewer client device114 a. The social networking system 101 provides the wait screen content612 after adding the viewer client device 114 a to the audience anddetermining that the audience does not yet satisfy the triggering event.In these embodiments, the social networking system 101 provides the waitscreen content 612 as a precursor or introduction to the live broadcastassociated with the broadcaster 110. In this way, the viewer 116 a canview the wait screen content 612 as he or she waits for the livebroadcast to begin (e.g., for the audience to satisfy the triggeringevent). Thus, the social networking system 101 creates a sort of virtuallobby or virtual waiting room for the viewer 116 a, as well as forviewers 116 b-116 n. Indeed, in some embodiments the social networkingsystem 101 provides the same wait screen content 612 to each of viewerclient devices 114, while in other embodiments the social networkingsystem 101 provides different wait screen content 612 to one or more ofthe viewer client devices 114 such that not all viewers 116 experiencethe same virtual lobby.

For instance, in one or more embodiments the social networking system101 provides wait screen content 612 that is related to or created bythe broadcaster 110. In at least one embodiment, the wait screen content612 is related to the live video broadcast. In at least one otherembodiment, the wait screen content 612 is related to the broadcaster110 and introduces the viewer 116 a to the broadcaster 110. In these orother embodiments, the wait screen content advertises a broadcastchannel associated with the broadcaster 110 or other related contentsuch as channels and/or videos of other broadcasters similar tobroadcaster 110.

In at least one embodiment, the wait screen content 612 is a pre-showvideo. In other embodiments, the wait screen content 612 is an image,audio clip, music, advertisement, GIF, or other digital media contentitem. The social networking system 101 provides the wait screen content612 until the audience satisfies the triggering event, at which time,the social networking system 101 notifies the viewer client device 114 athat the broadcast of the video stream is about to start. In response,the viewer client device 114 a may display a countdown or other startscreen within the viewer display interface 602 similar to the countdownpresented within the broadcaster display interface 302 shown in FIG. 5A.

Looking to FIG. 6C, the viewer client device 114 a displays the viewerapplication interface 614 including viewer window 616. Similar to thediscussion above regarding the broadcast window 412 of FIG. 4C, theviewer window 616 of FIG. 6C is a minimized display of the viewerdisplay interface 602 described above. As shown, the social networkingsystem 101 determines that the audience does not satisfy the triggeringevent, whereupon the viewer client device 114 a minimizes the viewerdisplay interface 602 into the viewer window 616. The viewer clientdevice 114 a minimizes the viewer display interface 602 into the viewerwindow 616 by shrinking the size of the viewer display window 602 so asto enable the viewer 116 a to navigate other content.

For example, in at least one embodiment, the social networking system101 provides content associated with the social networking application108 to the viewer client device 114 a. In this way, the socialnetworking system 101 enables the viewer 116 a to use the socialnetworking application 108 on the viewer client device 114 a while theviewer window 616 is displayed in a corner. The viewer 116 a may thennavigate the social networking application 108 while he or she waits forthe audience to satisfy the triggering event. When the social networkingsystem 101 determines that the audiences does satisfy the triggeringevent, the social networking system 101 provides a correspondingnotification to the viewer client device 114 a. In response, the viewerclient device 114 a maximizes the viewer window 616 back into the viewerdisplay interface 602 to display the video stream provided by the socialnetworking system 101.

Additionally, in one or more embodiments the social networking system101 provides comments to the viewer client device 114 a. As discussedabove, in some embodiments only the broadcaster client device 106 has adialogue section (e.g., dialogue section 404) to display viewercomments. In other embodiments, however, the viewer client device 114 amay also have a dialogue section to display comments from other viewersas well as messages from the social networking system 101 and/or thebroadcaster 110.

FIG. 7 illustrates a schematic diagram 700 of an example live videobroadcast system including a social networking system 101 housed onserver device(s) 104 as well as the social networking application 108housed on both the broadcaster client device 106 and the viewer clientdevice 114 a. The social networking system 101 can be an exampleembodiment of the social networking system as described above. Further,the social networking system 101 can be executed on a video capturingsystem, a video broadcasting system, and/or a social networking system,such as the social networking system described with respect to FIGS.11-12.

As shown in FIG. 7, the social networking application 108 on thebroadcaster client device 106 can include various components such as theGUI manager 108 a and the user input detector 108 b. From theperspective of the broadcaster client device 106, the GUI manager 108 amay manage, provide, display, animate, or otherwise present GUIs on thebroadcaster client device 106. In particular, the GUI manager 108 a mayinteract with the user input detector 108 b to alter its appearance inresponse to detecting user input by the broadcaster 110. In someembodiments, as described above, the GUI manager 108 a displays thebroadcaster display interface 302 together with the camera feed 304 andthe other options and features described above. Upon the user inputdetector 108 b detecting user input (e.g., a touch input to start a livebroadcast), the GUI manager 108 a may display a GUI to present thebroadcaster 110 with options corresponding to the detected input.

For example, in response to the user input detector 108 b detecting userinput by the broadcaster 110 in the form of touch input or typing inputto begin broadcasting a video stream, the GUI manager 108 a displays,within a GUI of the social networking application 108, the camera feed304, the dialogue section 404, and the other features described above.In response to the social networking system 101 determining that theaudience does not satisfy the triggering event, the GUI manager 108 amay display a wait message and audience size indicator. Furthermore, theGUI manager 108 a may minimize the broadcaster display interface 302 soas to preserve display space for the broadcaster to navigate othercontent. For example, the GUI manager 108 a may also display socialnetworking application content while waiting for the audience to satisfythe triggering event, as described above. Additionally, the GUI manager108 a may maximize the broadcaster display interface 302 once theaudience satisfies the triggering event. Each of the interfacesdisplayed by the GUI manager 108 a on the broadcaster client device 106may be part of the interfaces describe above.

From the perspective of the viewer client device 114 a, the GUI manager108 c may manage, display, animate, or otherwise present GUIs on theviewer client device 114 a. In particular, the GUI manager 108 c maydisplay the video stream that is captured by the broadcaster clientdevice 106 and provided by the social networking system 101. Where theaudience does not satisfy the triggering event, the GUI manager 108 cmay display a wait screen together with wait screen content such aspre-show video, as described above. Additionally, as with the GUImanager 108 a on the broadcaster client device 106, GUI manager 108 cmay minimize the viewer display interface 602 to enable the viewer 116 ato navigate content within the social networking application 108 whilewaiting for the broadcast to begin.

Upon the social networking system 101 determining that the audiencesatisfies the triggering event, on the other hand, the GUI manager 108 cmay also present the video stream. Additionally, the GUI manager 108 cmay communicate with the user input detector 108 d. In particular, inresponse to the user input detector 108 d detecting user input fromviewer 116 a in the form of a selection to view a broadcast, the GUImanager 108 c may display content related to the broadcast within theviewer display interface 602.

As shown in FIG. 7, the social networking system 101 can communicatewith the social networking application 108 on both the broadcasterclient device 106 and the viewer client device 114 a. Additionally, thesocial networking system 101 can include various components forperforming the processes and features described herein. For example, inthe embodiment shown in FIG. 7, the social networking system 101includes a video manager 702, a broadcast manager 704, a content manager706, a triggering event manager 708, and a social graph 710.

The components 702-710 of the social networking system 101 can comprisesoftware, hardware, or both. For example, the components 702-710 cancomprise one or more instructions stored on a computer-readable storagemedium and executable by processors of one or more computing devices,such as a client device or server device. When executed by the one ormore processors, the computer-executable instructions of the socialnetworking system 101 can cause the computing device(s) to perform thevideo presentation and live polling methods described herein.Alternatively, the components 702-712 can comprise hardware such as aspecial purpose processing device to perform a certain function or groupof functions. Alternatively still, the components 702-712 of the socialnetworking system 101 can comprise a combination of computer-executableinstructions and hardware.

As mentioned above, the social networking system 101 includes a videomanager 702. In general, the video manager 702 assists in receiving thevideo stream from the broadcaster client device 106 and providing thevideo stream to the viewer client device 114 a. In particular, the videomanager 702 may simultaneously receive the video stream from thebroadcaster client device 106 and transmit the video stream to theviewer client device 114 a for a “live” video stream presentation. Inother embodiments, the video manager 702 may transmit the video streamto the viewer client device 114 a only upon further receiving anindication from the broadcaster client device 106 (e.g., a user input bythe broadcaster 110 detected by the user input detector 108 b) that thebroadcaster 110 wants to broadcast the video stream for viewer 116 a toview. In any of these embodiments, the video manager 702 may communicatewith the other elements or components of the social networking system101 such as the broadcast manager 704 and/or the content manager 706discussed below.

The social networking system 101 also includes a broadcast manager 704.In particular, the broadcast manager 704 manages the initialization ofthe live broadcast. For example, when the broadcaster 110 selects anoption to begin a live broadcast, the broadcaster client device 106begins transmitting a video stream, and the social networking system 101receives the video stream by way of the video manager 702 as discussedabove. However, in embodiments where the audience does not satisfy thetriggering event, the social networking system 101 does not begintransmitting the video stream to the viewer client device 114 a. Thebroadcast manager 704 maintains the live broadcast as a communicationchannel between the broadcaster client device 106 and the viewer clientdevice 114 a but with no live video stream. In these embodiments, thebroadcast manager 704 may communicate with the content manager 706 andthe triggering event manager 708 to determine what to include within thebroadcast to the viewer client device 114 a. In this way, a livebroadcast may simply be a communication channel initiated at thebroadcaster client device 106, opened by social networking system 101,and joined at the viewer client device 114 a.

The social networking system 101 further includes a content manager 706.In particular, the content manager 706 can communicate with the GUImanager 108 a in the social networking application 108 on thebroadcaster client device 106 as well as the GUI manager 108 c in thesocial networking application 108 on the viewer client device 114 a. Bycommunicating with GUI manager 108 a and GUI manager 108 c, the contentmanager 706 can provide all elements and features related to the livebroadcast. In other words, the content manager 706 can provide the waitscreen content, user-selectable options, and social networkingapplication content to the viewer client device 114 a and thebroadcaster client device 106.

As mentioned and as shown in FIG. 7, the social networking system 101also includes a triggering event manager 708. In particular, thetriggering event manager 708 can communicate with the social networkingapplication 108 on both the broadcaster client device 106 and the viewerclient device 114 a to notify each respective device as to whether theaudience satisfies the triggering event. For example, the triggeringevent manager 708 monitors the number of viewers in the audience and/orthe identity of each viewer added to the audience. When the thresholdnumber of viewers is reached (or when a particular viewer is added tothe audience), thereby satisfying the triggering event, the triggeringevent manager 708 communicates with the content manager 706 and thevideo manager 702 to provide the relevant content to the broadcasterclient device 106 and the viewer client device 114 a.

In one or more embodiments, the social networking system 101 alsoincludes a social graph 710. The social graph includes node information712 and edge information 714. Node storage of the social graph 710 canstore node information 712 comprising nodes for users, nodes forconcepts, nodes for transactions, and nodes for items. Edge storage ofthe social graph 710 can store edge information 714 comprisingrelationships between nodes and/or actions occurring within the socialnetworking system 101 or a different social networking system. Furtherdetail regarding the social networking system, social graphs, edges, andnodes is presented below with respect to FIGS. 11-12.

FIG. 8 illustrates a flowchart of a method 800 of triggering a livebroadcast of a video stream. The method 800 includes an act 802 ofreceiving a request to begin a live video broadcast. In particular, theact 802 involves receiving, from a broadcaster client device associatedwith a broadcaster, a request to begin a live video broadcast.

As illustrated by FIG. 8, the method 800 further includes an act 804 ofreceiving a video stream for the live video broadcast. In particular,the act 804 involves receiving, from the broadcaster client device, avideo stream for the live video broadcast.

From FIG. 8, the method 800 includes an act 806 of providing anotification that the broadcaster has initiated the live videobroadcast. In particular, the act 806 may involve providing, to aplurality of viewer client devices, a notification that the broadcasterhas initiated the live video broadcast.

Additionally, the method 800 includes a further act 808 of adding one ormore viewers to an audience for the live video broadcast. In particular,the act 808 may involve adding, based on requests received from one ormore viewer client devices, one or more viewers to an audience for thelive video broadcast. As described above, the social networking system101 receives a request from a viewer client device (e.g., viewer clientdevice 114 a) to view a live video broadcast, and the social networkingsystem 101 adds viewers to the audience for the live video broadcast.

The method 800 also includes an act 810 of determining whether theaudience satisfies a triggering event. In particular, the act 810 mayinvolve determining whether the audience satisfies a triggering eventassociated with the live video broadcast. As discussed above, the socialnetworking system 101 determines, in some embodiments, whether athreshold number of viewers have been added to the audience (e.g.,whether the audience satisfies a threshold number of viewers). In otherembodiments, the social networking system 101 determines whether aparticular viewer has been added to the audience to satisfy thetriggering event.

As shown in FIG. 8, the method 800 also includes an act 812 ofrefraining from providing the video stream. In particular, the act 812may involve, in response to determining that the audience does notsatisfy the triggering event, refraining from providing the video streamto the one or more viewer client devices.

The method 800 further includes an act 814 of broadcasting the videostream. In particular, the act 812 may involve, in response totdetermining that the audience does satisfy the triggering event,broadcasting the video stream to the one or more viewer client devices.

In some embodiments, the method 800 further includes an act of providinga running total of a number of viewers added to the audience. Inparticular, the act includes providing, to the broadcaster clientdevice, a running total of the number of viewers added to the audienceby the social networking system. In some embodiments, the running totalis an incrementing counter that increases with each addition of a newviewer for the live broadcast, as described above.

In the same or other embodiments, the method 800 further includes an actof providing, to the broadcaster client device, a notification of anidentity of each individual viewer that is added to the audience. Asdescribed above, the social networking system 101 provides informationto the broadcaster client device 106 regarding the profile of eachviewer that selects an option to view the broadcast.

In additional or alternative embodiments, the method 800 includes an actof causing, in further response to determining that the audience doesnot satisfy the triggering event, a social networking application on thebroadcaster client device to: minimize a display of the live videobroadcast, and enable the broadcaster to navigate content within thesocial networking application.

In these or other embodiments, the method 800 further includes an act ofproviding, to the one or more viewer client devices, content for a waitscreen. In particular, in some embodiments the content for the waitscreen includes a notification that broadcasting the video stream hasbegun. Additionally or alternatively, the content for the wait screenincludes pre-show content associated with the broadcaster. In particularthe pre-show content includes, for example, an introduction video and anestimated time remaining until broadcasting the video stream begins.

The method 800 additionally or alternatively includes an act ofenabling, in further response to determining that the audience does notsatisfy the triggering event, each viewer associated with the one ormore viewer client devices, by way of each respective viewer clientdevice, to navigate content within an application (e.g., messagingapplication, social networking application, etc.) associated withviewing the live video broadcast.

Furthermore, the method 800 may include an act of causing, in responseto determining that the audience does not satisfy the triggering event,each of the one or more viewer client devices to minimize a displaywindow for the video stream. Relatedly, the method 800 may also includean act of causing, in response to determining that the audience doessatisfy the triggering event, each of the one or more viewer clientdevices to maximize a display window to present the video stream.Additionally or alternatively, the method 800 may include a further actof providing, in response to determining that the audience does satisfythe triggering event, a notification signifying that broadcasting thevideo stream has begun. Furthermore, the method 800 may include an actof providing, in further response to determining that the audience doessatisfy the triggering event, a countdown to begin broadcasting thevideo stream.

FIG. 9 illustrates a flowchart of a method 900 of providing a videostream for a live broadcast from a broadcaster client device. The method900 includes an act 902 of detecting a selection by a broadcaster tobegin a live video broadcast. In particular, the act 902 may involvedetecting, by way of a broadcaster client device, a selection by abroadcaster to begin a live video broadcast via a social networkingapplication.

As illustrated by FIG. 9, the method 900 includes an act 904 oftransmitting a video stream captured by the broadcaster client device.In particular, the act 904 involves transmitting, to one or more serverdevices, a video stream captured by the broadcaster client device forthe live video broadcast.

The method 900 further includes an act 906 of receiving an indication ofwhether the audience satisfies a triggering event. In particular, theact 906 may involve receiving, from the one or more server devices, anindication of whether the audience satisfies a triggering event.

As further illustrated by FIG. 9, the method 900 includes an act 908 ofminimizing a display window for the video stream and enabling thebroadcaster to navigate content within the social networkingapplication. In particular, the act 908 may involve, prior to receivingan indication that the audience satisfies the triggering, minimizing adisplay window for the video stream on the broadcaster client device andenabling the broadcaster to navigate content within the socialnetworking application.

The method 900 also includes an act 910 of maximizing the display windowfor the video stream. In particular, the act 910 involves, in responseto receiving the indication that the audience satisfies the triggeringevent, maximizing the display window for the video stream on thebroadcaster client device.

In one or more embodiments, the method 900 may further include an act ofpresenting, in further response to receiving the indication that theaudience satisfies the triggering event, a countdown to beginbroadcasting the video stream on the display of the broadcaster clientdevice.

In the same or other embodiments, the method 900 may include an act ofpresenting, prior to receiving an indication that the audience satisfiesthe triggering event, a virtual waiting room on the display of thebroadcast client device. For example, the presenting the virtual waitingroom may include presenting, on the display of the broadcaster clientdevice, comments from viewers who have joined the audience. Additionallyor alternatively, presenting the virtual waiting room may includepresenting, on the display of the broadcaster client device, anotification that the triggering event has not yet been satisfied.

Embodiments of the present disclosure may comprise or utilize a specialpurpose or general-purpose computer including computer hardware, suchas, for example, one or more processors and system memory, as discussedin greater detail below. Embodiments within the scope of the presentdisclosure also include physical and other computer-readable media forcarrying or storing computer-executable instructions and/or datastructures. In particular, one or more of the processes described hereinmay be implemented at least in part as instructions embodied in anon-transitory computer-readable medium and executable by one or morecomputing devices (e.g., any of the media content access devicesdescribed herein). In general, a processor (e.g., a microprocessor)receives instructions, from a non-transitory computer-readable medium,(e.g., a memory, etc.), and executes those instructions, therebyperforming one or more processes, including one or more of the processesdescribed herein.

Computer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system.Computer-readable media that store computer-executable instructions arenon-transitory computer-readable storage media (devices).Computer-readable media that carry computer-executable instructions aretransmission media. Thus, by way of example, and not limitation,embodiments of the disclosure can comprise at least two distinctlydifferent kinds of computer-readable media: non-transitorycomputer-readable storage media (devices) and transmission media.

Non-transitory computer-readable storage media (devices) includes RAM,ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM),Flash memory, phase-change memory (“PCM”), other types of memory, otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above should also be included within the scope ofcomputer-readable media.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media tonon-transitory computer-readable storage media (devices) (or viceversa). For example, computer-executable instructions or data structuresreceived over a network or data link can be buffered in RAM within anetwork interface module (e.g., a “NIC”), and then eventuallytransferred to computer system RAM and/or to less volatile computerstorage media (devices) at a computer system. Thus, it should beunderstood that non-transitory computer-readable storage media (devices)can be included in computer system components that also (or evenprimarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which, when executed at a processor, cause a general purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. In one or moreembodiments, computer-executable instructions are executed on ageneral-purpose computer to turn the general-purpose computer into aspecial purpose computer implementing elements of the disclosure. Thecomputer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, or evensource code. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the described features or acts described above.Rather, the described features and acts are disclosed as example formsof implementing the claims.

Those skilled in the art will appreciate that the disclosure may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, tablets, pagers, routers, switches, and the like. The disclosuremay also be practiced in distributed system environments where local andremote computer systems, which are linked (either by hardwired datalinks, wireless data links, or by a combination of hardwired andwireless data links) through a network, both perform tasks. In adistributed system environment, program modules may be located in bothlocal and remote memory storage devices.

Embodiments of the present disclosure can also be implemented in cloudcomputing environments. In this description, “cloud computing” isdefined as a model for enabling on-demand network access to a sharedpool of configurable computing resources. For example, cloud computingcan be employed in the marketplace to offer ubiquitous and convenienton-demand access to the shared pool of configurable computing resources.The shared pool of configurable computing resources can be rapidlyprovisioned via virtualization and released with low management effortor service provider interaction, and then scaled accordingly.

A cloud-computing model can be composed of various characteristics suchas, for example, on-demand self-service, broad network access, resourcepooling, rapid elasticity, measured service, and so forth. Acloud-computing model can also expose various service models, such as,for example, Software as a Service (“SaaS”), Platform as a Service(“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computingmodel can also be deployed using different deployment models such asprivate cloud, community cloud, public cloud, hybrid cloud, and soforth. In this description and in the claims, a “cloud-computingenvironment” is an environment in which cloud computing is employed.

FIG. 10 illustrates a block diagram of exemplary computing device 1000that may be configured to perform one or more of the processes describedabove. One will appreciate that one or more computing devices such asthe computing device 1000 may implement the social networking system. Asshown by FIG. 10, the computing device 1000 can comprise a processor1002, a memory 1004, a storage device 1006, an I/O interface 1008, and acommunication interface 1010, which may be communicatively coupled byway of a communication infrastructure 1012. While an exemplary computingdevice 1000 is shown in FIG. 10, the components illustrated in FIG. 10are not intended to be limiting. Additional or alternative componentsmay be used in other embodiments. Furthermore, in certain embodiments,the computing device 1000 can include fewer components than those shownin FIG. 10. Components of the computing device 1000 shown in FIG. 10will now be described in additional detail.

In one or more embodiments, the processor 1002 includes hardware forexecuting instructions, such as those making up a computer program. Asan example and not by way of limitation, to execute instructions, theprocessor 1002 may retrieve (or fetch) the instructions from an internalregister, an internal cache, the memory 1004, or the storage device 1006and decode and execute them. In one or more embodiments, the processor1002 may include one or more internal caches for data, instructions, oraddresses. As an example and not by way of limitation, the processor1002 may include one or more instruction caches, one or more datacaches, and one or more translation lookaside buffers (TLBs).Instructions in the instruction caches may be copies of instructions inthe memory 1004 or the storage 1006.

The memory 1004 may be used for storing data, metadata, and programs forexecution by the processor(s). The memory 1004 may include one or moreof volatile and non-volatile memories, such as Random Access Memory(“RAM”), Read Only Memory (“ROM”), a solid state disk (“SSD”), Flash,Phase Change Memory (“PCM”), or other types of data storage. The memory1004 may be internal or distributed memory.

The storage device 1006 includes storage for storing data orinstructions. As an example and not by way of limitation, storage device1006 can comprise a non-transitory storage medium described above. Thestorage device 1006 may include a hard disk drive (HDD), a floppy diskdrive, flash memory, an optical disc, a magneto-optical disc, magnetictape, or a Universal Serial Bus (USB) drive or a combination of two ormore of these. The storage device 1006 may include removable ornon-removable (or fixed) media, where appropriate. The storage device1006 may be internal or external to the computing device 1000. In one ormore embodiments, the storage device 1006 is non-volatile, solid-statememory. In other embodiments, the storage device 1006 includes read-onlymemory (ROM). Where appropriate, this ROM may be mask programmed ROM,programmable ROM (PROM), erasable PROM (EPROM), electrically erasablePROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or acombination of two or more of these.

The I/O interface 1008 allows a user to provide input to, receive outputfrom, and otherwise transfer data to and receive data from computingdevice 1000. The I/O interface 1008 may include a mouse, a keypad or akeyboard, a touchscreen, a camera, an optical scanner, networkinterface, modem, other known I/O devices or a combination of such I/Ointerfaces. The I/O interface 1008 may include one or more devices forpresenting output to a user, including, but not limited to, a graphicsengine, a display (e.g., a display screen), one or more output drivers(e.g., display drivers), one or more audio speakers, and one or moreaudio drivers. In certain embodiments, the I/O interface 1008 isconfigured to provide graphical data to a display for presentation to auser. The graphical data may be representative of one or more graphicaluser interfaces and/or any other graphical content as may serve aparticular implementation.

The communication interface 1010 can include hardware, software, orboth. In any event, the communication interface 1010 can provide one ormore interfaces for communication (such as, for example, packet-basedcommunication) between the computing device 1000 and one or more othercomputing devices or networks. As an example and not by way oflimitation, the communication interface 1010 may include a networkinterface controller (NIC) or network adapter for communicating with anEthernet or other wire-based network or a wireless NIC (WNIC) orwireless adapter for communicating with a wireless network, such as aWI-FI.

Additionally or alternatively, the communication interface 1010 mayfacilitate communications with an ad hoc network, a personal areanetwork (PAN), a local area network (LAN), a wide area network (WAN), ametropolitan area network (MAN), or one or more portions of the Internetor a combination of two or more of these. One or more portions of one ormore of these networks may be wired or wireless. As an example, thecommunication interface 1010 may facilitate communications with awireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FInetwork, a WI-MAX network, a cellular telephone network (such as, forexample, a Global System for Mobile Communications (GSM) network), orother suitable wireless network or a combination thereof.

Additionally, the communication interface 1010 may facilitatecommunications various communication protocols. Examples ofcommunication protocols that may be used include, but are not limitedto, data transmission media, communications devices, TransmissionControl Protocol (“TCP”), Internet Protocol (“IP”), File TransferProtocol (“FTP”), Telnet, Hypertext Transfer Protocol (“HTTP”),Hypertext Transfer Protocol Secure (“HTTPS”), Session InitiationProtocol (“SIP”), Simple Object Access Protocol (“SOAP”), ExtensibleMark-up Language (“XML”) and variations thereof, Simple Mail TransferProtocol (“SMTP”), Real-Time Transport Protocol (“RTP”), User DatagramProtocol (“UDP”), Global System for Mobile Communications (“GSM”)technologies, Code Division Multiple Access (“CDMA”) technologies, TimeDivision Multiple Access (“TDMA”) technologies, Short Message Service(“SMS”), Multimedia Message Service (“MMS”), radio frequency (“RF”)signaling technologies, Long Term Evolution (“LTE”) technologies,wireless communication technologies, in-band and out-of-band signalingtechnologies, and other suitable communications networks andtechnologies.

The communication infrastructure 1012 may include hardware, software, orboth that couples components of the computing device 1000 to each other.As an example and not by way of limitation, the communicationinfrastructure 1012 may include an Accelerated Graphics Port (AGP) orother graphics bus, an Enhanced Industry Standard Architecture (EISA)bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, anIndustry Standard Architecture (ISA) bus, an INFINIBAND interconnect, alow-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture(MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express(PCIe) bus, a serial advanced technology attachment (SATA) bus, a VideoElectronics Standards Association local (VLB) bus, or another suitablebus or a combination thereof.

As mentioned above, the social networking system can comprise asocial-networking system. A social-networking system may enable itsusers (such as persons or organizations) to interact with the system andwith each other. As mentioned above, the social networking system cancomprise a social-networking system. A social-networking system mayenable its users (such as persons or organizations) to interact with thesystem and with each other. The social-networking system may, with inputfrom a user, create and store in the social-networking system a userprofile associated with the user. The user profile may includedemographic information, communication-channel information, andinformation on personal interests of the user. The social-networkingsystem may also, with input from a user, create and store a record ofrelationships of the user with other users of the social-networkingsystem, as well as provide services (e.g. wall posts, photo-sharing,on-line calendars and event organization, messaging, games, oradvertisements) to facilitate social interaction between or among users.Also, the social-networking system may allow users to post photographsand other multimedia content items to a user's profile page (typicallyknown as “wall posts” or “timeline posts”) or in a photo album, both ofwhich may be accessible to other users of the social-networking systemdepending upon the user's configured privacy settings.

FIG. 11 illustrates an example network environment 1100 of asocial-networking system. Network environment 1100 includes a clientsystem 1106, a social-networking system 1102, and a third-party system1108 connected to each other by a network 1104. Although FIG. 11illustrates a particular arrangement of client system 1106,social-networking system 1102, third-party system 1108, and network1104, this disclosure contemplates any suitable arrangement of clientsystem 1106, social-networking system 1102, third-party system 1108, andnetwork 1104. As an example and not by way of limitation, two or more ofclient system 1106, social-networking system 1102, and third-partysystem 1108 may be connected to each other directly, bypassing network1104. As another example, two or more of client system 1106,social-networking system 1102, and third-party system 1108 may bephysically or logically co-located with each other in whole or in part.Moreover, although FIG. 11 illustrates a particular number of clientsystems 1106, social-networking systems 1102, third-party systems 1108,and networks 1104, this disclosure contemplates any suitable number ofclient systems 1106, social-networking systems 1102, third-party systems1108, and networks 1104. As an example and not by way of limitation,network environment 1100 may include multiple client system 1106,social-networking systems 1102, third-party systems 1108, and networks1104.

This disclosure contemplates any suitable network 1104. As an exampleand not by way of limitation, one or more portions of network 1104 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), a portion of the Internet, a portion of the Public SwitchedTelephone Network (PSTN), a cellular telephone network, or a combinationof two or more of these. Network 1104 may include one or more networks1104.

Links may connect client system 1106, social-networking system 1102, andthird-party system 1108 to communication network 1104 or to each other.This disclosure contemplates any suitable links. In particularembodiments, one or more links include one or more wireline (such as forexample Digital Subscriber Line (DSL) or Data Over Cable ServiceInterface Specification (DOCSIS)), wireless (such as for example Wi-Fior Worldwide Interoperability for Microwave Access (WiMAX)), or optical(such as for example Synchronous Optical Network (SONET) or SynchronousDigital Hierarchy (SDH)) links. In particular embodiments, one or morelinks each include an ad hoc network, an intranet, an extranet, a VPN, aLAN, a WLAN, a WAN, a WWAN, a MAN, a portion of the Internet, a portionof the PSTN, a cellular technology-based network, a satellitecommunications technology-based network, another link, or a combinationof two or more such links. Links need not necessarily be the samethroughout network environment 1100. One or more first links may differin one or more respects from one or more second links.

In particular embodiments, client system 1106 may be an electronicdevice including hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by clientsystem 1106. As an example and not by way of limitation, a client system1106 may include any of the computing devices discussed above inrelation to FIG. 11. A client system 1106 may enable a network user atclient system 1106 to access network 1104. A client system 1106 mayenable its user to communicate with other users at other client systems1106.

In particular embodiments, client system 1106 may include a web browser,such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME or MOZILLA FIREFOX,and may have one or more add-ons, plug-ins, or other extensions, such asTOOLBAR or YAHOO TOOLBAR. A user at client system 1106 may enter aUniform Resource Locator (URL) or other address directing the webbrowser to a particular server (such as server, or a server associatedwith a third-party system 1108), and the web browser may generate aHyper Text Transfer Protocol (HTTP) request and communicate the HTTPrequest to server. The server may accept the HTTP request andcommunicate to client system 1106 one or more Hyper Text Markup Language(HTML) files responsive to the HTTP request. Client system 1106 mayrender a webpage based on the HTML files from the server forpresentation to the user. This disclosure contemplates any suitablewebpage files. As an example and not by way of limitation, webpages mayrender from HTML files, Extensible Hyper Text Markup Language (XHTML)files, or Extensible Markup Language (XML) files, according toparticular needs. Such pages may also execute scripts such as, forexample and without limitation, those written in JAVASCRIPT, JAVA,MICROSOFT SILVERLIGHT, combinations of markup language and scripts suchas AJAX (Asynchronous JAVASCRIPT and XML), and the like. Herein,reference to a webpage encompasses one or more corresponding webpagefiles (which a browser may use to render the webpage) and vice versa,where appropriate.

In particular embodiments, social-networking system 1102 may be anetwork-addressable computing system that can host an online socialnetwork. Social-networking system 1102 may generate, store, receive, andsend social-networking data, such as, for example, user-profile data,concept-profile data, social-graph information, or other suitable datarelated to the online social network. Social-networking system 1102 maybe accessed by the other components of network environment 1100 eitherdirectly or via network 1104. In particular embodiments,social-networking system 1102 may include one or more servers. Eachserver may be a unitary server or a distributed server spanning multiplecomputers or multiple datacenters. Servers may be of various types, suchas, for example and without limitation, web server, news server, mailserver, message server, advertising server, file server, applicationserver, exchange server, database server, proxy server, another serversuitable for performing functions or processes described herein, or anycombination thereof. In particular embodiments, each server may includehardware, software, or embedded logic components or a combination of twoor more such components for carrying out the appropriate functionalitiesimplemented or supported by server. In particular embodiments,social-networking system 1102 may include one or more data stores. Datastores may be used to store various types of information. In particularembodiments, the information stored in data stores may be organizedaccording to specific data structures. In particular embodiments, eachdata store may be a relational, columnar, correlation, or other suitabledatabase. Although this disclosure describes or illustrates particulartypes of databases, this disclosure contemplates any suitable types ofdatabases. Particular embodiments may provide interfaces that enable aclient system 1106, a social-networking system 1102, or a third-partysystem 1108 to manage, retrieve, modify, add, or delete, the informationstored in data store.

In particular embodiments, social-networking system 1102 may store oneor more social graphs in one or more data stores. In particularembodiments, a social graph may include multiple nodes—which may includemultiple user nodes (each corresponding to a particular user) ormultiple concept nodes (each corresponding to a particular concept)—andmultiple edges connecting the nodes. Social-networking system 1102 mayprovide users of the online social network the ability to communicateand interact with other users. In particular embodiments, users may jointhe online social network via social-networking system 1102 and then addconnections (e.g., relationships) to a number of other users ofsocial-networking system 1102 whom they want to be connected to. Herein,the term “friend” may refer to any other user of social-networkingsystem 1102 with whom a user has formed a connection, association, orrelationship via social-networking system 1102.

In particular embodiments, social-networking system 1102 may provideusers with the ability to take actions on various types of items orobjects, supported by social-networking system 1102. As an example andnot by way of limitation, the items and objects may include groups orsocial networks to which users of social-networking system 1102 maybelong, events or calendar entries in which a user might be interested,computer-based applications that a user may use, transactions that allowusers to buy or sell items via the service, interactions withadvertisements that a user may perform, or other suitable items orobjects. A user may interact with anything that is capable of beingrepresented in social-networking system 1102 or by an external system ofthird-party system 1108, which is separate from social-networking system1102 and coupled to social-networking system 1102 via a network 1104.

In particular embodiments, social-networking system 1102 may be capableof linking a variety of entities. As an example and not by way oflimitation, social-networking system 1102 may enable users to interactwith each other as well as receive content from third-party systems 1108or other entities, or to allow users to interact with these entitiesthrough an application programming interfaces (API) or othercommunication channels.

In particular embodiments, a third-party system 1108 may include one ormore types of servers, one or more data stores, one or more interfaces,including but not limited to APIs, one or more web services, one or morecontent sources, one or more networks, or any other suitable components,e.g., that servers may communicate with. A third-party system 1108 maybe operated by a different entity from an entity operatingsocial-networking system 1102. In particular embodiments, however,social-networking system 1102 and third-party systems 1108 may operatein conjunction with each other to provide social-networking services tousers of social-networking system 1102 or third-party systems 1108. Inthis sense, social-networking system 1102 may provide a platform, orbackbone, which other systems, such as third-party systems 1108, may useto provide social-networking services and functionality to users acrossthe Internet.

In particular embodiments, a third-party system 1108 may include athird-party content object provider. A third-party content objectprovider may include one or more sources of content objects, which maybe communicated to a client system 1106. As an example and not by way oflimitation, content objects may include information regarding things oractivities of interest to the user, such as, for example, movie showtimes, movie reviews, restaurant reviews, restaurant menus, productinformation and reviews, or other suitable information. As anotherexample and not by way of limitation, content objects may includeincentive content objects, such as coupons, discount tickets, giftcertificates, or other suitable incentive objects.

In particular embodiments, social-networking system 1102 also includesuser-generated content objects, which may enhance a user's interactionswith social-networking system 1102. User-generated content may includeanything a user can add, upload, send, or “post” to social-networkingsystem 1102. As an example and not by way of limitation, a usercommunicates posts to social-networking system 1102 from a client system1106. Posts may include data such as status updates or other textualdata, location information, photos, videos, links, music or othersimilar data or media. Content may also be added to social-networkingsystem 1102 by a third-party through a “communication channel,” such asa newsfeed or stream.

In particular embodiments, social-networking system 1102 may include avariety of servers, sub-systems, programs, modules, logs, and datastores. In particular embodiments, social-networking system 1102 mayinclude one or more of the following: a web server, action logger,API-request server, relevance-and-ranking engine, content-objectclassifier, notification controller, action log,third-party-content-object-exposure log, inference module,authorization/privacy server, search module, advertisement-targetingmodule, user-interface module, user-profile store, connection store,third-party content store, or location store. Social-networking system1102 may also include suitable components such as network interfaces,security mechanisms, load balancers, failover servers,management-and-network-operations consoles, other suitable components,or any suitable combination thereof. In particular embodiments,social-networking system 1102 may include one or more user-profilestores for storing user profiles. A user profile may include, forexample, biographic information, demographic information, behavioralinformation, social information, or other types of descriptiveinformation, such as work experience, educational history, hobbies orpreferences, interests, affinities, or location. Interest informationmay include interests related to one or more categories. Categories maybe general or specific. As an example and not by way of limitation, if auser “likes” an article about a brand of shoes the category may be thebrand, or the general category of “shoes” or “clothing.” A connectionstore may be used for storing connection information about users. Theconnection information may indicate users who have similar or commonwork experience, group memberships, hobbies, educational history, or arein any way related or share common attributes. The connectioninformation may also include user-defined connections between differentusers and content (both internal and external). A web server may be usedfor linking social-networking system 1102 to one or more client systems1106 or one or more third-party system 1108 via network 1104. The webserver may include a mail server or other messaging functionality forreceiving and routing messages between social-networking system 1102 andone or more client systems 1106. An API-request server may allow athird-party system 1108 to access information from social-networkingsystem 1102 by calling one or more APIs. An action logger may be used toreceive communications from a web server about a user's actions on oroff social-networking system 1102. In conjunction with the action log, athird-party-content-object log may be maintained of user exposures tothird-party-content objects. A notification controller may provideinformation regarding content objects to a client system 1106.Information may be pushed to a client system 1106 as notifications, orinformation may be pulled from client system 1106 responsive to arequest received from client system 1106. Authorization servers may beused to enforce one or more privacy settings of the users ofsocial-networking system 1102. A privacy setting of a user determineshow particular information associated with a user can be shared. Theauthorization server may allow users to opt in to or opt out of havingtheir actions logged by social-networking system 1102 or shared withother systems (e.g., third-party system 1108), such as, for example, bysetting appropriate privacy settings. Third-party-content-object storesmay be used to store content objects received from third parties, suchas a third-party system 1108. Location stores may be used for storinglocation information received from client systems 1106 associated withusers. Advertisement-pricing modules may combine social information, thecurrent time, location information, or other suitable information toprovide relevant advertisements, in the form of notifications, to auser.

FIG. 12 illustrates example social graph 1200. In particularembodiments, social-networking system 1102 may store one or more socialgraphs 1200 in one or more data stores. In particular embodiments,social graph 1200 may include multiple nodes—which may include multipleuser nodes 1202 or multiple concept nodes 1204—and multiple edges 1206connecting the nodes. Example social graph 1200 illustrated in FIG. 12is shown, for didactic purposes, in a two-dimensional visual maprepresentation. In particular embodiments, a social-networking system1102, client system 1106, or third-party system 1108 may access socialgraph 1200 and related social-graph information for suitableapplications. The nodes and edges of social graph 1200 may be stored asdata objects, for example, in a data store (such as a social-graphdatabase). Such a data store may include one or more searchable or queryable indexes of nodes or edges of social graph 1200.

In particular embodiments, a user node 1202 may correspond to a user ofsocial-networking system 1102. As an example and not by way oflimitation, a user may be an individual (human user), an entity (e.g.,an enterprise, business, or third-party application), or a group (e.g.,of individuals or entities) that interacts or communicates with or oversocial-networking system 1102. In particular embodiments, when a userregisters for an account with social-networking system 1102,social-networking system 1102 may create a user node 1202 correspondingto the user, and store the user node 1202 in one or more data stores.Users and user nodes 1202 described herein may, where appropriate, referto registered users and user nodes 1202 associated with registeredusers. In addition or as an alternative, users and user nodes 1202described herein may, where appropriate, refer to users that have notregistered with social-networking system 1102. In particularembodiments, a user node 1202 may be associated with informationprovided by a user or information gathered by various systems, includingsocial-networking system 1102. As an example and not by way oflimitation, a user may provide his or her name, profile picture, contactinformation, birth date, sex, marital status, family status, employment,education background, preferences, interests, or other demographicinformation. Each user node of the social graph may have a correspondingweb page (typically known as a profile page). In response to a requestincluding a user name, the social-networking system can access a usernode corresponding to the user name, and construct a profile pageincluding the name, a profile picture, and other information associatedwith the user. A profile page of a first user may display to a seconduser all or a portion of the first user's information based on one ormore privacy settings by the first user and the relationship between thefirst user and the second user.

In particular embodiments, a concept node 1204 may correspond to aconcept. As an example and not by way of limitation, a concept maycorrespond to a place (such as, for example, a movie theater,restaurant, landmark, or city); a website (such as, for example, awebsite associated with social-network system 1102 or a third-partywebsite associated with a web-application server); an entity (such as,for example, a person, business, group, sports team, or celebrity); aresource (such as, for example, an audio file, video file, digitalphoto, text file, structured document, or application) which may belocated within social-networking system 1102 or on an external server,such as a web-application server; real or intellectual property (suchas, for example, a sculpture, painting, movie, game, song, idea,photograph, or written work); a game; an activity; an idea or theory;another suitable concept; or two or more such concepts. A concept node1204 may be associated with information of a concept provided by a useror information gathered by various systems, including social-networkingsystem 1102. As an example and not by way of limitation, information ofa concept may include a name or a title; one or more images (e.g., animage of the cover page of a book); a location (e.g., an address or ageographical location); a web site (which may be associated with a URL);contact information (e.g., a phone number or an email address); othersuitable concept information; or any suitable combination of suchinformation. In particular embodiments, a concept node 1204 may beassociated with one or more data objects corresponding to informationassociated with concept node 1204. In particular embodiments, a conceptnode 1204 may correspond to one or more webpages.

In particular embodiments, a node in social graph 1200 may represent orbe represented by a webpage (which may be referred to as a “profilepage”). Profile pages may be hosted by or accessible tosocial-networking system 1102. Profile pages may also be hosted onthird-party websites associated with a third-party server 1108. As anexample and not by way of limitation, a profile page corresponding to aparticular external webpage may be the particular external webpage andthe profile page may correspond to a particular concept node 1204.Profile pages may be viewable by all or a selected subset of otherusers. As an example and not by way of limitation, a user node 1202 mayhave a corresponding user-profile page in which the corresponding usermay add content, make declarations, or otherwise express himself orherself. As another example and not by way of limitation, a concept node1204 may have a corresponding concept-profile page in which one or moreusers may add content, make declarations, or express themselves,particularly in relation to the concept corresponding to concept node1204.

In particular embodiments, a concept node 1204 may represent athird-party webpage or resource hosted by a third-party system 1108. Thethird-party webpage or resource may include, among other elements,content, a selectable or other icon, or other inter-actable object(which may be implemented, for example, in JavaScript, AJAX, or PHPcodes) representing an action or activity. As an example and not by wayof limitation, a third-party webpage may include a selectable icon suchas “like,” “check in,” “eat,” “recommend,” or another suitable action oractivity. A user viewing the third-party webpage may perform an actionby selecting one of the icons (e.g., “eat”), causing a client system1106 to send to social-networking system 1102 a message indicating theuser's action. In response to the message, social-networking system 1102may create an edge (e.g., an “eat” edge) between a user node 1202corresponding to the user and a concept node 1204 corresponding to thethird-party webpage or resource and store edge 1206 in one or more datastores.

In particular embodiments, a pair of nodes in social graph 1200 may beconnected to each other by one or more edges 1206. An edge 1206connecting a pair of nodes may represent a relationship between the pairof nodes. In particular embodiments, an edge 1206 may include orrepresent one or more data objects or attributes corresponding to therelationship between a pair of nodes. As an example and not by way oflimitation, a first user may indicate that a second user is a “friend”of the first user. In response to this indication, social-networkingsystem 1102 may send a “friend request” to the second user. If thesecond user confirms the “friend request,” social-networking system 1102may create an edge 1206 connecting the first user's user node 1202 tothe second user's user node 1202 in social graph 1200 and store edge1206 as social-graph information in one or more of data stores. In theexample of FIG. 12, social graph 1200 includes an edge 1206 indicating afriend relation between user nodes 1202 of user “A” and user “B” and anedge indicating a friend relation between user nodes 1202 of user “C”and user “B.” Although this disclosure describes or illustratesparticular edges 1206 with particular attributes connecting particularuser nodes 1202, this disclosure contemplates any suitable edges 1206with any suitable attributes connecting user nodes 1202. As an exampleand not by way of limitation, an edge 1206 may represent a friendship,family relationship, business or employment relationship, fanrelationship, follower relationship, visitor relationship, sub scriberrelationship, superior/subordinate relationship, reciprocalrelationship, non-reciprocal relationship, another suitable type ofrelationship, or two or more such relationships. Moreover, although thisdisclosure generally describes nodes as being connected, this disclosurealso describes users or concepts as being connected. Herein, referencesto users or concepts being connected may, where appropriate, refer tothe nodes corresponding to those users or concepts being connected insocial graph 1200 by one or more edges 1206.

In particular embodiments, an edge 1206 between a user node 1202 and aconcept node 1204 may represent a particular action or activityperformed by a user associated with user node 1202 toward a conceptassociated with a concept node 1204. As an example and not by way oflimitation, as illustrated in FIG. 12, a user may “like,” “attended,”“played,” “listened,” “cooked,” “worked at,” or “watched” a concept,each of which may correspond to a edge type or subtype. Aconcept-profile page corresponding to a concept node 1204 may include,for example, a selectable “check in” icon (such as, for example, aclickable “check in” icon) or a selectable “add to favorites” icon.Similarly, after a user clicks these icons, social-networking system1102 may create a “favorite” edge or a “check in” edge in response to auser's action corresponding to a respective action. As another exampleand not by way of limitation, a user (user “C”) may listen to aparticular song (“Ramble On”) using a particular application (SPOTIFY,which is an online music application). In this case, social-networkingsystem 1102 may create a “listened” edge 1206 and a “used” edge (asillustrated in FIG. 12) between user nodes 1202 corresponding to theuser and concept nodes 1204 corresponding to the song and application toindicate that the user listened to the song and used the application.Moreover, social-networking system 1102 may create a “played” edge 1206(as illustrated in FIG. 12) between concept nodes 1204 corresponding tothe song and the application to indicate that the particular song wasplayed by the particular application. In this case, “played” edge 1206corresponds to an action performed by an external application (SPOTIFY)on an external audio file (the song “Imagine”). Although this disclosuredescribes particular edges 1206 with particular attributes connectinguser nodes 1202 and concept nodes 1204, this disclosure contemplates anysuitable edges 1206 with any suitable attributes connecting user nodes1202 and concept nodes 1204. Moreover, although this disclosuredescribes edges between a user node 1202 and a concept node 1204representing a single relationship, this disclosure contemplates edgesbetween a user node 1202 and a concept node 1204 representing one ormore relationships. As an example and not by way of limitation, an edge1206 may represent both that a user likes and has used at a particularconcept. Alternatively, another edge 1206 may represent each type ofrelationship (or multiples of a single relationship) between a user node1202 and a concept node 1204 (as illustrated in FIG. 12 between usernode 1202 for user “E” and concept node 1204 for “SPOTIFY”).

In particular embodiments, social-networking system 1102 may create anedge 1206 between a user node 1202 and a concept node 1204 in socialgraph 1200. As an example and not by way of limitation, a user viewing aconcept-profile page (such as, for example, by using a web browser or aspecial-purpose application hosted by the user's client system 1106) mayindicate that he or she likes the concept represented by the conceptnode 1204 by clicking or selecting a “Like” icon, which may cause theuser's client system 1106 to send to social-networking system 1102 amessage indicating the user's liking of the concept associated with theconcept-profile page. In response to the message, social-networkingsystem 1102 may create an edge 1206 between user node 1202 associatedwith the user and concept node 1204, as illustrated by “like” edge 1206between the user and concept node 1204. In particular embodiments,social-networking system 1102 may store an edge 1206 in one or more datastores. In particular embodiments, an edge 1206 may be automaticallyformed by social-networking system 1102 in response to a particular useraction. As an example and not by way of limitation, if a first useruploads a picture, watches a movie, or listens to a song, an edge 1206may be formed between user node 1202 corresponding to the first user andconcept nodes 1204 corresponding to those concepts. Although thisdisclosure describes forming particular edges 1206 in particularmanners, this disclosure contemplates forming any suitable edges 1206 inany suitable manner.

In particular embodiments, an advertisement may be text (which may beHTML-linked), one or more images (which may be HTML-linked), one or morevideos, audio, one or more ADOBE FLASH files, a suitable combination ofthese, or any other suitable advertisement in any suitable digitalformat presented on one or more webpages, in one or more e-mails, or inconnection with search results requested by a user. In addition or as analternative, an advertisement may be one or more sponsored stories(e.g., a news-feed or ticker item on social-networking system 1102). Asponsored story may be a social action by a user (such as “liking” apage, “liking” or commenting on a post on a page, RSVPing to an eventassociated with a page, voting on a question posted on a page, checkingin to a place, using an application or playing a game, or “liking” orsharing a website) that an advertiser promotes, for example, by havingthe social action presented within a pre-determined area of a profilepage of a user or other page, presented with additional informationassociated with the advertiser, bumped up or otherwise highlightedwithin news feeds or tickers of other users, or otherwise promoted. Theadvertiser may pay to have the social action promoted. As an example andnot by way of limitation, advertisements may be included among thesearch results of a search-results page, where sponsored content ispromoted over non-sponsored content.

In particular embodiments, an advertisement may be requested for displaywithin social-networking-system webpages, third-party webpages, or otherpages. An advertisement may be displayed in a dedicated portion of apage, such as in a banner area at the top of the page, in a column atthe side of the page, in a GUI of the page, in a pop-up window, in adrop-down menu, in an input field of the page, over the top of contentof the page, or elsewhere with respect to the page. In addition or as analternative, an advertisement may be displayed within an application. Anadvertisement may be displayed within dedicated pages, requiring theuser to interact with or watch the advertisement before the user mayaccess a page or utilize an application. The user may, for example viewthe advertisement through a web browser.

A user may interact with an advertisement in any suitable manner. Theuser may click or otherwise select the advertisement. By selecting theadvertisement, the user may be directed to (or a browser or otherapplication being used by the user) a page associated with theadvertisement. At the page associated with the advertisement, the usermay take additional actions, such as purchasing a product or serviceassociated with the advertisement, receiving information associated withthe advertisement, or subscribing to a newsletter associated with theadvertisement. An advertisement with audio or video may be played byselecting a component of the advertisement (like a “play button”).Alternatively, by selecting the advertisement, social-networking system1102 may execute or modify a particular action of the user.

An advertisement may also include social-networking-system functionalitythat a user may interact with. As an example and not by way oflimitation, an advertisement may enable a user to “like” or otherwiseendorse the advertisement by selecting an icon or link associated withendorsement. As another example and not by way of limitation, anadvertisement may enable a user to search (e.g., by executing a query)for content related to the advertiser. Similarly, a user may share theadvertisement with another user (e.g., through social-networking system1102) or RSVP (e.g., through social-networking system 1102) to an eventassociated with the advertisement. In addition or as an alternative, anadvertisement may include social-networking-system context directed tothe user. As an example and not by way of limitation, an advertisementmay display information about a friend of the user withinsocial-networking system 1102 who has taken an action associated withthe subject matter of the advertisement.

In particular embodiments, social-networking system 1102 may determinethe social-graph affinity (which may be referred to herein as“affinity”) of various social-graph entities for each other. Affinitymay represent the strength of a relationship or level of interestbetween particular objects associated with the online social network,such as users, concepts, content, actions, advertisements, other objectsassociated with the online social network, or any suitable combinationthereof. Affinity may also be determined with respect to objectsassociated with third-party systems 1108 or other suitable systems. Anoverall affinity for a social-graph entity for each user, subjectmatter, or type of content may be established. The overall affinity maychange based on continued monitoring of the actions or relationshipsassociated with the social-graph entity. Although this disclosuredescribes determining particular affinities in a particular manner, thisdisclosure contemplates determining any suitable affinities in anysuitable manner.

In particular embodiments, social-networking system 1102 may measure orquantify social-graph affinity using an affinity coefficient (which maybe referred to herein as “coefficient”). The coefficient may representor quantify the strength of a relationship between particular objectsassociated with the online social network. The coefficient may alsorepresent a probability or function that measures a predictedprobability that a user will perform a particular action based on theuser's interest in the action. In this way, a user's future actions maybe predicted based on the user's prior actions, where the coefficientmay be calculated at least in part a the history of the user's actions.Coefficients may be used to predict any number of actions, which may bewithin or outside of the online social network. As an example and not byway of limitation, these actions may include various types ofcommunications, such as sending messages, posting content, or commentingon content; various types of a observation actions, such as accessing orviewing profile pages, media, or other suitable content; various typesof coincidence information about two or more social-graph entities, suchas being in the same group, tagged in the same photograph, checked-in atthe same location, or attending the same event; or other suitableactions. Although this disclosure describes measuring affinity in aparticular manner, this disclosure contemplates measuring affinity inany suitable manner.

In particular embodiments, social-networking system 1102 may use avariety of factors to calculate a coefficient. These factors mayinclude, for example, user actions, types of relationships betweenobjects, location information, other suitable factors, or anycombination thereof. In particular embodiments, different factors may beweighted differently when calculating the coefficient. The weights foreach factor may be static or the weights may change according to, forexample, the user, the type of relationship, the type of action, theuser's location, and so forth. Ratings for the factors may be combinedaccording to their weights to determine an overall coefficient for theuser. As an example and not by way of limitation, particular useractions may be assigned both a rating and a weight while a relationshipassociated with the particular user action is assigned a rating and acorrelating weight (e.g., so the weights total 100%). To calculate thecoefficient of a user towards a particular object, the rating assignedto the user's actions may comprise, for example, 60% of the overallcoefficient, while the relationship between the user and the object maycomprise 40% of the overall coefficient. In particular embodiments, thesocial-networking system 1102 may consider a variety of variables whendetermining weights for various factors used to calculate a coefficient,such as, for example, the time since information was accessed, decayfactors, frequency of access, relationship to information orrelationship to the object about which information was accessed,relationship to social-graph entities connected to the object, short- orlong-term averages of user actions, user feedback, other suitablevariables, or any combination thereof. As an example and not by way oflimitation, a coefficient may include a decay factor that causes thestrength of the signal provided by particular actions to decay withtime, such that more recent actions are more relevant when calculatingthe coefficient. The ratings and weights may be continuously updatedbased on continued tracking of the actions upon which the coefficient isbased. Any type of process or algorithm may be employed for assigning,combining, averaging, and so forth the ratings for each factor and theweights assigned to the factors. In particular embodiments,social-networking system 1102 may determine coefficients usingmachine-learning algorithms trained on historical actions and past userresponses, or data farmed from users by exposing them to various optionsand measuring responses. Although this disclosure describes calculatingcoefficients in a particular manner, this disclosure contemplatescalculating coefficients in any suitable manner.

In particular embodiments, social-networking system 1102 may calculate acoefficient based on a user's actions. Social-networking system 1102 maymonitor such actions on the online social network, on a third-partysystem 1108, on other suitable systems, or any combination thereof. Anysuitable type of user actions may be tracked or monitored. Typical useractions include viewing profile pages, creating or posting content,interacting with content, joining groups, listing and confirmingattendance at events, checking-in at locations, liking particular pages,creating pages, and performing other tasks that facilitate socialaction. In particular embodiments, social-networking system 1102 maycalculate a coefficient based on the user's actions with particulartypes of content. The content may be associated with the online socialnetwork, a third-party system 1108, or another suitable system. Thecontent may include users, profile pages, posts, news stories,headlines, instant messages, chat room conversations, emails,advertisements, pictures, video, music, other suitable objects, or anycombination thereof. Social-networking system 1102 may analyze a user'sactions to determine whether one or more of the actions indicate anaffinity for subject matter, content, other users, and so forth. As anexample and not by way of limitation, if a user may make frequentlyposts content related to “coffee” or variants thereof, social-networkingsystem 1102 may determine the user has a high coefficient with respectto the concept “coffee”. Particular actions or types of actions may beassigned a higher weight and/or rating than other actions, which mayaffect the overall calculated coefficient. As an example and not by wayof limitation, if a first user emails a second user, the weight or therating for the action may be higher than if the first user simply viewsthe user-profile page for the second user.

In particular embodiments, social-networking system 1102 may calculate acoefficient based on the type of relationship between particularobjects. Referencing the social graph 1200, social-networking system1102 may analyze the number and/or type of edges 1206 connectingparticular user nodes 1202 and concept nodes 1204 when calculating acoefficient. As an example and not by way of limitation, user nodes 1202that are connected by a spouse-type edge (representing that the twousers are married) may be assigned a higher coefficient than user nodes1202 that are connected by a friend-type edge. In other words, dependingupon the weights assigned to the actions and relationships for theparticular user, the overall affinity may be determined to be higher forcontent about the user's spouse than for content about the user'sfriend. In particular embodiments, the relationships a user has withanother object may affect the weights and/or the ratings of the user'sactions with respect to calculating the coefficient for that object. Asan example and not by way of limitation, if a user is tagged in firstphoto, but merely likes a second photo, social-networking system 1102may determine that the user has a higher coefficient with respect to thefirst photo than the second photo because having a tagged-in-typerelationship with content may be assigned a higher weight and/or ratingthan having a like-type relationship with content. In particularembodiments, social-networking system 1102 may calculate a coefficientfor a first user based on the relationship one or more second users havewith a particular object. In other words, the connections andcoefficients other users have with an object may affect the first user'scoefficient for the object. As an example and not by way of limitation,if a first user is connected to or has a high coefficient for one ormore second users, and those second users are connected to or have ahigh coefficient for a particular object, social-networking system 1102may determine that the first user should also have a relatively highcoefficient for the particular object. In particular embodiments, thecoefficient may be based on the degree of separation between particularobjects. Degree of separation between any two nodes is defined as theminimum number of hops required to traverse the social graph from onenode to the other. A degree of separation between two nodes can beconsidered a measure of relatedness between the users or the conceptsrepresented by the two nodes in the social graph. For example, two usershaving user nodes that are directly connected by an edge (i.e., arefirst-degree nodes) may be described as “connected users” or “friends.”Similarly, two users having user nodes that are connected only throughanother user node (i.e., are second-degree nodes) may be described as“friends of friends.” The lower coefficient may represent the decreasinglikelihood that the first user will share an interest in content objectsof the user that is indirectly connected to the first user in the socialgraph 1200. As an example and not by way of limitation, social-graphentities that are closer in the social graph 1200 (i.e., fewer degreesof separation) may have a higher coefficient than entities that arefurther apart in the social graph 1200.

In particular embodiments, social-networking system 1102 may calculate acoefficient based on location information. Objects that aregeographically closer to each other may be considered to be morerelated, or of more interest, to each other than more distant objects.In particular embodiments, the coefficient of a user towards aparticular object may be based on the proximity of the object's locationto a current location associated with the user (or the location of aclient system 1106 of the user). A first user may be more interested inother users or concepts that are closer to the first user. As an exampleand not by way of limitation, if a user is one mile from an airport andtwo miles from a gas station, social-networking system 1102 maydetermine that the user has a higher coefficient for the airport thanthe gas station based on the proximity of the airport to the user.

In particular embodiments, social-networking system 1102 may performparticular actions with respect to a user based on coefficientinformation. Coefficients may be used to predict whether a user willperform a particular action based on the user's interest in the action.A coefficient may be used when generating or presenting any type ofobjects to a user, such as advertisements, search results, news stories,media, messages, notifications, or other suitable objects. Thecoefficient may also be utilized to rank and order such objects, asappropriate. In this way, social-networking system 1102 may provideinformation that is relevant to user's interests and currentcircumstances, increasing the likelihood that they will find suchinformation of interest. In particular embodiments, social-networkingsystem 1102 may generate content based on coefficient information.Content objects may be provided or selected based on coefficientsspecific to a user. As an example and not by way of limitation, thecoefficient may be used to generate media for the user, where the usermay be presented with media for which the user has a high overallcoefficient with respect to the media object. As another example and notby way of limitation, the coefficient may be used to generateadvertisements for the user, where the user may be presented withadvertisements for which the user has a high overall coefficient withrespect to the advertised object. In particular embodiments,social-networking system 1102 may generate search results based oncoefficient information. Search results for a particular user may bescored or ranked based on the coefficient associated with the searchresults with respect to the querying user. As an example and not by wayof limitation, search results corresponding to objects with highercoefficients may be ranked higher on a search-results page than resultscorresponding to objects having lower coefficients.

In particular embodiments, social-networking system 1102 may calculate acoefficient in response to a request for a coefficient from a particularsystem or process. To predict the likely actions a user may take (or maybe the subject of) in a given situation, any process may request acalculated coefficient for a user. The request may also include a set ofweights to use for various factors used to calculate the coefficient.This request may come from a process running on the online socialnetwork, from a third-party system 1108 (e.g., via an API or othercommunication channel), or from another suitable system. In response tothe request, social-networking system 1102 may calculate the coefficient(or access the coefficient information if it has previously beencalculated and stored). In particular embodiments, social-networkingsystem 1102 may measure an affinity with respect to a particularprocess. Different processes (both internal and external to the onlinesocial network) may request a coefficient for a particular object or setof objects. Social-networking system 1102 may provide a measure ofaffinity that is relevant to the particular process that requested themeasure of affinity. In this way, each process receives a measure ofaffinity that is tailored for the different context in which the processwill use the measure of affinity.

In connection with social-graph affinity and affinity coefficients,particular embodiments may utilize one or more systems, components,elements, functions, methods, operations, or steps disclosed in U.S.patent application Ser. No. 11/503,093, filed 11 Aug. 2006, U.S. patentapplication Ser. No. 12/971,1027, filed 22 Dec. 2010, U.S. patentapplication Ser. No. 12/978,265, filed 23 Dec. 2010, and U.S. patentapplication Ser. No. 13/642,869, field 1 Oct. 2012, each of which isincorporated by reference.

In particular embodiments, one or more of the content objects of theonline social network may be associated with a privacy setting. Theprivacy settings (or “access settings”) for an object may be stored inany suitable manner, such as, for example, in association with theobject, in an index on an authorization server, in another suitablemanner, or any combination thereof. A privacy setting of an object mayspecify how the object (or particular information associated with anobject) can be accessed (e.g., viewed or shared) using the online socialnetwork. Where the privacy settings for an object allow a particularuser to access that object, the object may be described as being“visible” with respect to that user. As an example and not by way oflimitation, a user of the online social network may specify privacysettings for a user-profile page identify a set of users that may accessthe work experience information on the user-profile page, thus excludingother users from accessing the information. In particular embodiments,the privacy settings may specify a “blocked list” of users that shouldnot be allowed to access certain information associated with the object.In other words, the blocked list may specify one or more users orentities for which an object is not visible. As an example and not byway of limitation, a user may specify a set of users that may not accessphotos albums associated with the user, thus excluding those users fromaccessing the photo albums (while also possibly allowing certain usersnot within the set of users to access the photo albums). In particularembodiments, privacy settings may be associated with particularsocial-graph elements. Privacy settings of a social-graph element, suchas a node or an edge, may specify how the social-graph element,information associated with the social-graph element, or content objectsassociated with the social-graph element can be accessed using theonline social network. As an example and not by way of limitation, aparticular concept node 1204 corresponding to a particular photo mayhave a privacy setting specifying that the photo may only be accessed byusers tagged in the photo and their friends. In particular embodiments,privacy settings may allow users to opt in or opt out of having theiractions logged by social-networking system 1102 or shared with othersystems (e.g., third-party system 1108). In particular embodiments, theprivacy settings associated with an object may specify any suitablegranularity of permitted access or denial of access. As an example andnot by way of limitation, access or denial of access may be specifiedfor particular users (e.g., only me, my roommates, and my boss), userswithin a particular degrees-of-separation (e.g., friends, orfriends-of-friends), user groups (e.g., the gaming club, my family),user networks (e.g., employees of particular employers, students oralumni of particular university), all users (“public”), no users(“private”), users of third-party systems 1108, particular applications(e.g., third-party applications, external websites), other suitableusers or entities, or any combination thereof. Although this disclosuredescribes using particular privacy settings in a particular manner, thisdisclosure contemplates using any suitable privacy settings in anysuitable manner.

In particular embodiments, one or more servers may beauthorization/privacy servers for enforcing privacy settings. Inresponse to a request from a user (or other entity) for a particularobject stored in a data store, social-networking system 1102 may send arequest to the data store for the object. The request may identify theuser associated with the request and may only be sent to the user (or aclient system 1106 of the user) if the authorization server determinesthat the user is authorized to access the object based on the privacysettings associated with the object. If the requesting user is notauthorized to access the object, the authorization server may preventthe requested object from being retrieved from the data store, or mayprevent the requested object from be sent to the user. In the searchquery context, an object may only be generated as a search result if thequerying user is authorized to access the object. In other words, theobject must have a visibility that is visible to the querying user. Ifthe object has a visibility that is not visible to the user, the objectmay be excluded from the search results. Although this disclosuredescribes enforcing privacy settings in a particular manner, thisdisclosure contemplates enforcing privacy settings in any suitablemanner.

The foregoing specification is described with reference to specificexemplary embodiments thereof. Various embodiments and aspects of thedisclosure are described with reference to details discussed herein, andthe accompanying drawings illustrate the various embodiments. Thedescription above and drawings are illustrative and are not to beconstrued as limiting. Numerous specific details are described toprovide a thorough understanding of various embodiments.

The additional or alternative embodiments may be embodied in otherspecific forms without departing from its spirit or essentialcharacteristics. The described embodiments are to be considered in allrespects only as illustrative and not restrictive. The scope of thepresent disclosure is, therefore, indicated by the appended claimsrather than by the foregoing description. All changes that come withinthe meaning and range of equivalency of the claims are to be embracedwithin their scope.

1. A method comprising: receiving, from a broadcaster client deviceassociated with a broadcaster, a request to begin a live videobroadcast; receiving, from the broadcaster client device, a video streamfor the live video broadcast; providing, to a plurality of viewer clientdevices, a notification that the broadcaster has initiated the livevideo broadcast; adding, based on requests received from one or moreviewer client devices, one or more viewers to an audience for the livevideo broadcast; determining whether the audience satisfies a triggeringevent associated with the live video broadcast; and in response todetermining that the audience does satisfy the triggering event,broadcasting the video stream to the one or more viewer client devices.2. The method of claim 1, wherein determining whether the audiencesatisfies a triggering event associated with the live video broadcastcomprises determining whether the audience includes a threshold numberof viewers.
 3. The method of claim 1, wherein determining whether theaudience satisfies a triggering event associated with the live videobroadcast comprises determining whether a particular viewer has beenadded to the audience.
 4. The method of claim 1, further comprisingproviding, to the broadcaster client device, a running total of a numberof viewers added to the audience.
 5. The method of claim 1, furthercomprising providing, to the broadcaster client device, a notificationof an identity of each individual viewer that is added to the audience.6. The method of claim 1, further comprising: in response to determiningthat the audience does not satisfy the triggering event, causing asocial networking application on the broadcaster client device to:minimize a display window of the live video broadcast; and enable thebroadcaster to navigate content within the social networkingapplication.
 7. The method of claim 1, further comprising providing, tothe one or more viewer client devices, content for a wait screen.
 8. Themethod of claim 7, wherein the content for the wait screen comprises anotification that the live video broadcast has not begun.
 9. The methodof claim 7, wherein the content for the wait screen comprises pre-showcontent associated with the broadcaster, the pre-show content comprisingan introduction video and an estimated time remaining until broadcastingthe video stream begins.
 10. The method of claim 1, further comprisingin response to determining that the audience does not satisfy thetriggering event, enabling each viewer associated with the one or moreviewer client devices, by way of each respective viewer client device,to navigate content within an application associated with viewing thelive video broadcast.
 11. The method of claim 1, further comprising inresponse to determining that the audience does not satisfy thetriggering event, causing each of the one or more viewer client devicesto minimize a display window for the video stream.
 12. The method ofclaim 1, further comprising in response to determining that the audiencedoes not satisfy the triggering event, refraining from providing thevideo stream to the one or more viewer client devices.
 13. The method ofclaim 1, further comprising in further response to determining that theaudience does satisfy the triggering event, causing each of the one ormore viewer client devices to maximize a display window to present thevideo stream.
 14. The method of claim 1, further comprising in furtherresponse to determining that the audience does satisfy the triggeringevent, causing the viewer client devices to display a countdown to thebeginning of the video stream. 15-19. (canceled)
 20. A systemcomprising: a computing device comprising a processor; and softwareinstructions that, when executed by the processor, cause the system to:receive, from a broadcaster client device associated with a broadcaster,a request to begin a live video broadcast; receive, from the broadcasterclient device, a video stream for the live video broadcast; provide, toa plurality of viewer client devices, a notification that thebroadcaster has initiated the live video broadcast; add, based onrequests received from one or more viewer client devices, one or moreviewers to an audience for the live video broadcast; determine whetherthe audience satisfies a triggering event associated with the live videobroadcast; and in response to determining that the audience does satisfythe triggering event, broadcast the video stream to the one or moreviewer client devices.
 21. The system of claim 20, wherein the softwareinstructions cause the system to determine whether the audiencesatisfies the triggering event by determining whether the audiencesatisfies a triggering event associated with the live video broadcastcomprises determining whether the audience includes a threshold numberof viewers.
 22. The system of claim 20, further comprising softwareinstructions that, when executed by the processor, cause the system toprovide, to the one or more viewer client devices, content for a waitscreen.
 23. A non-transitory computer readable medium comprisinginstructions that, when executed by a processor, cause a computer deviceto: receive, from a broadcaster client device associated with abroadcaster, a request to begin a live video broadcast; receive, fromthe broadcaster client device, a video stream for the live videobroadcast; provide, to a plurality of viewer client devices, anotification that the broadcaster has initiated the live videobroadcast; add, based on requests received from one or more viewerclient devices, one or more viewers to an audience for the live videobroadcast; determine whether the audience satisfies a triggering eventassociated with the live video broadcast; and in response to determiningthat the audience does satisfy the triggering event, broad the videostream to the one or more viewer client devices
 24. The non-transitorycomputer readable medium of claim 20, wherein the instructions cause thecomputer device to determine whether the audience satisfies thetriggering event by determining whether the audience satisfies atriggering event associated with the live video broadcast comprisesdetermining whether the audience includes a threshold number of viewers.25. The non-transitory computer readable medium of claim 20, furthercomprising instructions that, when executed by the processor, cause thecomputer device to provide, to the one or more viewer client devices,content for a wait screen.